C/C++刷题DAY2
创始人
2024-01-20 14:21:53

1.第一题

27. 移除元素 - 力扣(LeetCode)

 分析:对于此题,我们使用双指针的方式去写它,需要注意空间复杂度是O(1),时间复杂度也是尽量的越低越好,要去需要原地修改数组,因此不能够创建其他的临时数组。

代码如下:

int removeElement(int* nums, int numsSize, int val)
{int str = 0;int des = 0;while(str < numsSize){if(nums[str] == val){str++;}else{nums[des]=nums[str];des++;str++;}}return des;
}

2.第二题

26. 删除有序数组中的重复项 - 力扣(LeetCode)

文字分析:

1.此题本质上是一个去重算法

2. 需要在原数组上改动,那么一定要用到数组上元素的覆盖

3.元素要覆盖的话,必须要使用两个以及指针去指向这两个元素才能完成元素的覆盖

4.覆盖完成之后,输出最前的数据,就是已经排好顺序的去重之后的数据了

5.我们这里采用的指针是ptr和str

6.当ptr指向的数据和str指向的数据相同的时候,str往后挪动一位,如果此时还相同,就继续往后挪动,直到ptr和str指向的数据不相同,此时将ptr向后移动一位(保留一开始指向位置的数据,而后面的数据将被覆盖),再把str指向的值赋值给ptr指向的值

图解分析:

 

参考代码:

int removeDuplicates(int* nums, int numsSize)
{int str = 0;int ptr = 0;while(str < numsSize){if(nums[str] == nums[ptr]){str++;}else{ptr++;nums[ptr] = nums[str];}}return ptr+1;}

3.第三题

88. 合并两个有序数组 - 力扣(LeetCode)

 思路分析:

1.非递减顺序可以理解为升序的序列

2.本题的要求是要合并两个数组nums1和nums2,合并之后的数组要存在第一个数组nums1里面,且刚刚好存满这个数组nums1

3.并且存完之后的nums2是升序排列的

4.那要怎么保证升序呢?

5.将nums2中的元素和nums1的中的元素比较就行,从后往前遍历2个数组,较大的放最后,较小的放前面

6.若要比较,那么至少需要三个指针来比较,指针p1和指针p2,指向的是要比较的元素,指针j指向的是比较完之后的那么较大的值或者较小的值应该怎么存。

图片分析:

第一种情况:

 第二种情况:

参考代码:

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
{int p1 =m-1;int p2 =n-1;int j=m+n-1;while(p1>=0 && p2>=0){if(nums1[p1]>nums2[p2]){nums1[j--]=nums1[p1--];}else{nums1[j--]=nums2[p2--];}}while(p2>=0){nums1[j--]=nums2[p2--];}
}

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
阳澄湖在哪里哪个省的 阳澄湖是... 点击题目下方苏州生活指南有用 有趣 有态度近期的阳澄湖度很高,3月24日,央视二套《第一时间》直播连...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
金属硬度排行 各种金属硬度 世界上最硬的东西排名分别为硫化碳块,石墨烯,金刚石,金属玻璃和金属锇。这五种物体几乎是整个世界上最坚...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...