[C++] 牛客网:合并两个有序的数组
主要是體驗一下牛客網(wǎng)里的核心代碼模式到底是怎么弄的。。還有C++這個東西平常用的太少了,試一試。
以外的還體驗到了sort()函數(shù)的使用。
來源:牛客網(wǎng)
題目鏈接:合并兩個有序的數(shù)組
知識點:數(shù)組、雙指針
描述
給出一個整數(shù)數(shù)組 A 和有序的整數(shù)數(shù)組 B ,請將數(shù)組 B 合并到數(shù)組 A 中,變成一個有序的升序數(shù)組
數(shù)據(jù)范圍:
注意:
- 保證 A 數(shù)組有足夠的空間存放 B 數(shù)組的元素, A 和 B 中初始的元素數(shù)目分別為 m 和 n,A的數(shù)組空間大小為 m+n
- 不要返回合并的數(shù)組,將數(shù)組 B 的數(shù)據(jù)合并到 A 里面就好了
- A 數(shù)組在[0,m-1]的范圍也是有序的
例1:
A: [4,5,6,0,0,0],m=3
B: [1,2,3],n=3
合并過后A為:
A: [1,2,3,4,5,6]
示例1
輸入:
[4,5,6],[1,2,3]
返回值:
[1,2,3,4,5,6]
說明:
A數(shù)組為[4,5,6],B數(shù)組為[1,2,3],后臺程序會預(yù)先將A擴(kuò)容為[4,5,6,0,0,0],B還是為[1,2,3],m=3,n=3,傳入到函數(shù)merge里面,然后請同學(xué)完成merge函數(shù),將B的數(shù)據(jù)合并A里面,最后后臺程序輸出A數(shù)組
示例2
輸入:
[1,2,3],[2,5,6]
返回值:
[1,2,2,3,5,6]
思路
主要是體驗一下牛客網(wǎng)上的核心代碼模式到底是怎么操作的,還有C++。
這題應(yīng)該算是很簡單了,不過居然沒有#include<cstring>就不能用strcat的方法。本來想一個strcat和一個sort()光速解決問題,沒想到還是要手動連接。
本質(zhì)上就是連接之后進(jìn)行一個排序,注意這里要破壞原數(shù)組A,返回值是void(就是說它直接輸出你破壞掉的A)。
sort()的使用:
sort(A, A + m + n);
解題代碼
class Solution {
public:void merge(int A[], int m, int B[], int n) {int i, j;j = 0;for (i = m; i < m + n; i++) {A[i] = B[j];j++;}sort(A, A + m + n);}
};
總結(jié)
以上是生活随笔為你收集整理的[C++] 牛客网:合并两个有序的数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSRF攻击与防御
- 下一篇: Cocos Creator 的 动作(A