最直观的作法:将nums1 后几个元素的值覆盖,然后在排序
逆向指针法:一共四个指针,p1和p2指向被比较的两个数,cur指针指向比较完之后较大的数字,tail用来指向这个较大的数字的存放位置.
分支循环: 1)如果p1<p2 那么cur=nums2[p2--],nums1[tail--]=cur
- 如果p1>=p2 那么cur=nums1[p1--],nums1[tail--]=cur
3)循环结束条件:我这里和官方解答的有一点出入,我认为只有有一个p1或者p2==-1就可以结束循环了,但是我举了几个例子,把自己推翻了。
假如第一个nums1所有数都比nums2的数大地离谱,那么你说白了就是把nums1复制到后面,你地指针p1==-1时,很有可能你下面地数组都还没放进去过!!
还有一种方法,指针从头部开始走,这和你想指针,方法类似,只不过这此比较是找小的,但是这个你需要开辟新的空间,你没办法在原有地数组中存入,因为你可能会覆盖,假设nums1都很大,nums2都为1,就全覆盖了,当你想排大的数字时,已经找不到了.