怎么做网站代拍,平台网站开发公司,公司注册流程及费用及时间,外国企业网站模板免费下载Hello#xff01;很高兴又见到你了~~~
看看今天要学点什么来充实大脑吧—— 目录 1、移除元素
【思路图解】
【总结】
2、删除有序数组中的重复项
【思路图解】
【总结】
3、合并两个有序数组
【思路图解】
【总结】 至此结束#xff0c;Show Time#xff01; 1、…
Hello很高兴又见到你了~~~
看看今天要学点什么来充实大脑吧—— 目录 1、移除元素
【思路图解】
【总结】
2、删除有序数组中的重复项
【思路图解】
【总结】
3、合并两个有序数组
【思路图解】
【总结】 至此结束Show Time 1、移除元素 【思路图解】 上面的例子第一个数是等于val当不等于val 时可以自己试一下。新思路的时间复杂度为O(N)空间复杂度为O(N)结合思路我们尝试上代码 int removeElement(int* nums, int numsSize, int val)
{int src0;int dst0;while(srcnumsSize){if(nums[src]val){src;}else{nums[dst]nums[src];//src;//dst;}}return dst;
}【总结】 通过把 src 指向的不等于 val 的数赋给 dst 指向的位置实现把不等于 val 的数放到前面而且刚好 dst 的值就是数组中不等于 val 的数据的个数同时要注意循环的条件。 2、删除有序数组中的重复项 【思路图解】 咱们直接上代码 在图解第一个步骤中出现了重复赋值的情况。经过 dst 1 后dst 指向的数据等于2src 指向的数据也等于2再把 src 指向数据的值赋给dst这里出现了重复赋值我们优化一下代码 int removeDuplicates(int* nums, int numsSize)
{int dst0;int src1;while(srcnumsSize){if(nums[dst]!nums[src]dst!src){nums[dst]nums[src];}src;}return dst1;
} 【总结】 通过 src 遍历数组如果与 dst 指向的数据相等就跳过不相等就先 dst再赋给 dst 指向的位置限制条件 src数组长度。这种方法思路清晰 3、合并两个有序数组 【思路图解】 思路理清上代码 void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
{int l1m-1;int l2n-1;int l3mn-1;while(l10l20){if(nums1[l1]nums2[l2]){nums1[l3--]nums1[l1--];}else{nums1[l3--]nums2[l2--];}}//出了while循环要么l10,要么l20while(l20){nums1[l3--]nums2[l2--];}
} 【总结】 妙多理解理解记住这种方法悟一悟反正我太菜想不到这种方法...... 至此结束Show Time
完——
童话镇_小野来了_高音质在线试听_童话镇歌词|歌曲下载_酷狗音乐酷狗音乐为您提供由小野来了演唱的高清音质无损童话镇mp3在线听,听童话镇,只来酷狗音乐!https://t3.kugou.com/song.html?id8Ceht83CPV2