题解 | #合并两个排序的链表#
合并两个排序的链表
https://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337
合并两个有序的数组,而且重点是合并完了之后也必须要有序的
那么拆分一下整个题目的要求
是不是把两个数组放一起,然后再排序一下就行了呢?
排序的算法很多对吧,也可以直接sort这里就不赘述了
但是有没有更方便的呢?
当然有啦,既然数组的值我都已经知道了,并且按顺序排好了,直接在循环里跑的时候
把小的放前面,大的继续比,然后两个指针一直这样跑完不就行啦?
具体看代码吧~
class Solution { public: void merge(int A[], int m, int B[], int n) { int end = m+n-1, i = m-1,j = n-1; //初始化 end,i,j while(end!=0 && i>=0 && j>=0){ if(A[i]>B[j]) A[end--] = A[i--]; //从尾部开始 else A[end--] = B[j--]; } while(j>=0) A[end--] = B[j--]; // i《0,复制B } };