一、移除元素
. - 力扣(LeetCode)
题目描述:
int removeElement(int* nums, int numsSize, int val) {int src=0;int dst=0;while(src<numsSize){if(nums[src]==val){src++;}else if (nums[src]!=val){nums[dst]=nums[src];src++;dst++;}}return dst;
}
采用双指针的方法;
二、合并两个有序数组
. - 力扣(LeetCode)
题目描述:
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) {int l3=n+m-1;int l1=m-1;int l2=n-1;while(l1>=0 && l2>=0){if(nums1[l1]>=nums2[l2]){nums1[l3]=nums1[l1];l3--;l1--;}else{nums1[l3]=nums2[l2];l3--;l2--;}}while(l2>=0){nums1[l3]=nums2[l2];l3--;l2--;}
}
谁大就把谁往后放,最终要把nums2里面的元素全部放到nums1里面,因此要在最后加上一个条件,这里l1代表的元素全部放完了,所以不需要再处理,并且nums2里面的元素肯定都比较小;只用处nums2。