前言
一.移除元素
题目为:
思路:
代码实现:
int removeElement(int* nums, int numsSize, int val) {
int src=0;//定义两个变量
int dst=0;
while(src<numsSize)//遍历寻找val
{
if(nums[src]==val)
{
src++;
}
else
{
nums[dst]=nums[src];
src++;
dst++;
}
}
return dst;
}
2.合并两个有序数组
题目为:
思路:
代码如下:
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) {
int l1=m-1;
int l2=n-1;
int l3=m+n-1;
while(l1>=0&&l2>=0)//两者都存在时比较,将小的值赋给l3
{
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--;
}
}