当前位置:网站首页>(oj)原地移除数组中所有的元素val、删除排序数组中的重复项、合并两个有序数组
(oj)原地移除数组中所有的元素val、删除排序数组中的重复项、合并两个有序数组
2022-08-05 05:17:00 【Captain林】
本篇文章计划用简单的代码方式向大家介绍题目所述的三个oj题的解题方法
目录
1. 原地移除数组中所有的元素val
题目如下


解法如下

int removeElement(int* nums, int numsSize, int val)
{
int left = 0;
for(int right=0; right<numsSize; right++)
{
if(nums[right] != val)//要改变数组
{
nums[left] = nums[right];
left++;
}
}
return left;
}2. 删除排序数组中的重复项
题目如下


解法如下

int removeDuplicates(int* nums, int numsSize){
int src = 1;
int dst = 0;
while(src < numsSize)
{
if(nums[src] == nums[dst])
{
src++;
}
else
{
dst++;
nums[dst] = nums[src];
src++;
}
}
return dst+1;
}3.合并两个有序数组
题目如下

解法如下
设end、end1、end2,当end1指向的值大于end2,先将end1的值放到end所在位置,反之亦然
注意:有可能会出现end1遍历完而end2没有遍历完的情况,这时可以额外增加一个循环使数组nums2的所有值复制到数组nums1上

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
{
int end1 = m-1;
int end2 = n-1;
int end = m+n-1;
while(end1 >= 0 && end2 >= 0)
{
if(nums1[end1] > nums2[end2])
{
nums1[end--] = nums1[end1--];
}
else
{
nums1[end--] = nums2[end2--];
}
}
while(end2 >= 0)
{
nums1[end--] = nums2[end2--];
}
}4.结语
看到这里,相信老铁们对如何解决上述oj题有了相应的了解。
我是计算机海洋的新进船长Captain_ldx,如果我的文章能对您有帮助的话,麻烦各位观众姥爷们点赞、收藏、关注,你们的每一次举手之劳都将化为船长的前进动力!
边栏推荐
- It turns out that the MAE proposed by He Yuming is still a kind of data enhancement
- TinyFlashDB:一种超轻量的可纠错的通用单片机flash存储方案
- LeetCode刷题之第55题
- 【数据库和SQL学习笔记】8.SQL中的视图(view)
- Tensorflow踩坑笔记,记录各种报错和解决方法
- 华科提出首个用于伪装实例分割的一阶段框架OSFormer
- [Database and SQL study notes] 8. Views in SQL
- Tensorflow2 与 Pytorch 在张量Tensor基础操作方面的对比整理汇总
- 物联网-广域网技术之NB-IoT
- 盘点关于发顶会顶刊论文,你需要知道写作上的这些事情!
猜你喜欢
随机推荐
leetCode刷题之第31题
SharedPreferences和SQlite数据库
【数据库和SQL学习笔记】10.(T-SQL语言)函数、存储过程、触发器
CVPR2020 - 自校准卷积
【论文阅读-表情捕捉】ExpNet: Landmark-Free, Deep, 3D Facial Expressions
【nodejs】第一章:nodejs架构
【数据库和SQL学习笔记】6.SELECT查询4:嵌套查询、对查询结果进行操作
LeetCode刷题之第530题
【ts】typescript高阶:联合类型与交叉类型
【数据库和SQL学习笔记】3.数据操纵语言(DML)、SELECT查询初阶用法
【shell编程】第三章:函数
常用 crud 的思考和设计
11%的参数就能优于Swin,微软提出快速预训练蒸馏方法TinyViT
教你如何封装功能组件和页面组件
【22李宏毅机器学习】课程大纲概述
吞吐?带宽?傻傻分不清楚
CVPR 2020 - 频谱正则化
【Promise高级用法】实现并行和串行API
CVPR2021 - Inception Convolution with Efficient Dilation Search
「实用」运维新手一定不能错过的17 个技巧









