[C++] 牛客网:合并两个有序的数组
生活随笔
收集整理的這篇文章主要介紹了
[C++] 牛客网:合并两个有序的数组
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
主要是體驗一下牛客網里的核心代碼模式到底是怎么弄的。。還有C++這個東西平常用的太少了,試一試。
以外的還體驗到了sort()函數的使用。
來源:??途W
題目鏈接:合并兩個有序的數組
知識點:數組、雙指針
描述
給出一個整數數組 A 和有序的整數數組 B ,請將數組 B 合并到數組 A 中,變成一個有序的升序數組
數據范圍:
注意:
- 保證 A 數組有足夠的空間存放 B 數組的元素, A 和 B 中初始的元素數目分別為 m 和 n,A的數組空間大小為 m+n
- 不要返回合并的數組,將數組 B 的數據合并到 A 里面就好了
- A 數組在[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數組為[4,5,6],B數組為[1,2,3],后臺程序會預先將A擴容為[4,5,6,0,0,0],B還是為[1,2,3],m=3,n=3,傳入到函數merge里面,然后請同學完成merge函數,將B的數據合并A里面,最后后臺程序輸出A數組
示例2
輸入:
[1,2,3],[2,5,6]
返回值:
[1,2,2,3,5,6]
思路
主要是體驗一下??途W上的核心代碼模式到底是怎么操作的,還有C++。
這題應該算是很簡單了,不過居然沒有#include<cstring>就不能用strcat的方法。本來想一個strcat和一個sort()光速解決問題,沒想到還是要手動連接。
本質上就是連接之后進行一個排序,注意這里要破壞原數組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);}
};
總結
以上是生活随笔為你收集整理的[C++] 牛客网:合并两个有序的数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSRF攻击与防御
- 下一篇: 地字开头的成语接龙大全集