🌈 个人主页:白子寰
🔥 分类专栏:python从入门到精通,魔法指针,进阶C++,C语言,C语言题集,C语言实现游戏👈 希望得到您的订阅和支持~
💡 坚持创作博文(平均质量分81+),分享更多关于深度学习、C/C++,python领域的优质内容!(希望得到您的关注~)
目录
【力扣】-- 移除元素
链接
题目要求
示例
解法
①使用for循环遍历整个数组
② 双指针法(定义两个变量)
【力扣】-- 合并两个有序数组
链接
题目要求
示例
解法
①先合并后统一排序
②从后往前比大小
【力扣】-- 移除元素
链接
移除元素https://leetcode.cn/problems/remove-element/description/
题目要求
示例
输入:nums = [3,2,2,3], val = 3 输出:2, nums = [2,2]
解法
①使用for循环遍历整个数组
int removeElement(int* nums, int numsSize, int val) {int size = 0;for(int i = 0; i < numsSize - 1; i++){if(nums[i] != val){nums[size] = nums[i];size++;/*也可以写成nums[size++] = nums[i]*/}}return size;
}
② 双指针法(定义两个变量)
int removeElement(int* nums, int numsSize, int val) {int src = 0, dst = 0;while(src < numsSize){if(nums[src] != val){nums[dst++] = nums[src++];}else{src++;}}return dst;
}
【力扣】-- 合并两个有序数组
链接
合并两个有序数组https://leetcode.cn/problems/merge-sorted-array/description/
题目要求
示例
输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3 输出:[1,2,2,3,5,6] 解释:需要合并 [1,2,3] 和 [2,5,6] 。 合并结果是 [1,2,2,3,5,6] ,其中斜体加粗标注的为 nums1 中的元素。
解法
①先合并后统一排序
int cmp(int* p1,int* p2)
{return *p1 - *p2;
}void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) {for(int i = 0; i < n; ++i){nums1[m + i] = nums2[i];}qsort(nums1,nums1Size,sizeof(int),cmp);
}
②从后往前比大小
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){//谁大谁放在后面if(nums1[l1]>nums2[l2]){nums1[l3--] = nums1[l1--];}else{nums1[l3--] = nums2[l2--];}}//最后要么l1<0,要么l2<0while(l2 >= 0){nums1[l3--] = nums2[l2--];}
}
***********************************************************分割线*****************************************************************************
完结!!!
感谢浏览和阅读。
等等等等一下,分享最近喜欢的一句话:“选择本身,就是向前”。
我是白子寰,如果你喜欢我的作品,不妨你留个点赞+关注让我知道你曾来过。
你的点赞和关注是我持续写作的动力!!!
好了划走吧。