当前位置: 首页 > news >正文

深圳自适应网站建设简单网站建设视频

深圳自适应网站建设,简单网站建设视频,内江企业网站建设公司,朝阳网站建设怎么样移除元素 此题简单#xff0c;用双指针方法即可#xff0c; 如果右指针指向的元素不等于val#xff0c;它一定是输出数组的一个元素#xff0c;我们就将右指针指向的元素复制到左指针位置#xff0c;然后将左右指针同时右移#xff1b; 如果右指针指向的元素等于 val用双指针方法即可 如果右指针指向的元素不等于val它一定是输出数组的一个元素我们就将右指针指向的元素复制到左指针位置然后将左右指针同时右移 如果右指针指向的元素等于 val它不能在输出数组里此时左指针不动右指针右移一位。 且最后需要输出的数组长度就是left的值。不多说上代码 int removeElement(int* nums, int numsSize, int val) {int left 0;int right 0;for(int i 0;inumsSize;i){if(nums[right] ! val){nums[left]nums[right];left;right;}else{right;}}return left;}时间复杂度O(N) 空间复杂度O(1) 删除有序数组中的重复项 暴力想法 注意是暴力想法不是暴力解法 作为直男直接就是想实现。 直接遍历看题目是已经确定了是有序的遇到与上一个不相等的直接给他拿到新的数组里面存起来。遍历完直接新数组就是答案。 看样子是很接近了哈毕竟属于简单的题目。但是 O(1) 额外空间的条件下完成这个是我们跨不过去的坎。既然如此那就得考虑在原数组上操作。 双指针法 定义两个指针fast 和 slow 分别为快指针和慢指针快指针表示遍历数组到达的下标位置慢指针表示下一个不同元素要填入的下标位置初始时两个指针都指向下标 1。 假设数组nums 的长度为 n。将快指针 fast 依次遍历从 1 到 n-1 的每个位置对于每个位置如果nums[fast] !nums[fast-1],说明 nums[fast] 和之前的元素都不同因此将 nums[fast] 的值复制到nums[slow]然后将 slow 的值加 1即指向下一个位置。遍历结束之后从 nums[0] 到 nums[slow−1] 的每个元素都不相同且包含原数组中的每个不同的元素因此新的长度即为 slow返回 slow 即可。 //C int removeDuplicates(int* nums, int numsSize) {int right 1;int left 1;for(int i1;inumsSize;i){if(nums[right-1]!nums[right]){nums[left]nums[right];left;right;}else{right;}}return left; }合并两个有序数组 方法一直接合并后排序 最直观的方法是先将数组 nums 2放进数组nums 1的尾部然后直接对整个数组进行排序。 int cmp(int* a, int* b) {return *a - *b; } 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); }时间复杂度O((mn)\log(mn)) 空间复杂度O(log(mn)) 方法二逆向双指针 观察可知nums 1 的后半部分是空的可以直接覆盖而不会影响结果。因此可以指针设置为从后向前遍历每次取两者之中的较大者放进 nums 1的最后面。 void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) {int end1 m-1;int end2 n -1;int end mn-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--];}}时间复杂度O(mn) 空间复杂度O(1)
http://www.dnsts.com.cn/news/17565.html

相关文章:

  • 竹子建站是什么芜湖高端网站建设
  • 如何加强精神文明网站建设内容大型公司为什么做网站
  • 华为云网站建设怎么设置选择项怎样做网站模板
  • 网站开发二维码生成宝安中心图片
  • 网站设计中国内优秀企业网站欣赏平台制作专业网站制作
  • 建站系统网站建设发布网站后备案
  • 网站建设主机的功能百度舆情监测平台
  • 网站开发工程师简介微信小程序注册后怎么使用
  • 河池做网站网站开发 图片库
  • 学习建设网站书籍wordpress增加分类
  • 怎么自己电脑做网站服务器马鞍山网站制作公司
  • seo诊断工具网站外贸网站免费建站
  • 手机网站页面如何制作腾讯微信山东区建站推广中心
  • 河北网站建设企业50000免费短视频素材
  • 舞钢市住房和城乡建设局网站如何做视频网站的广告推广
  • 网站开发技术总监面试题海口网站制作网站
  • 东城做网站义乌来料123加工网
  • 那些开店的网站是自己做的吗响应式网站文字大小
  • 郑州航海路网站建设163 com免费邮箱注册
  • 网站停留时间 从哪里获取郴州58同城
  • 手把手教你做网站7开封市建设教育协会网站
  • 呼和浩特网站建设价格做一个企业的网站怎么做的
  • 石家庄网站编辑河北seo网站设计
  • 怎么做网站服务器系统工业和信息化部网站备案系统怎么登录
  • 深圳pc端网站开发从哪方面建设网站
  • 深圳网站设计公司有哪些ps做网站图
  • 网站标题和关键词一样网页设计需要学什么软件有哪些
  • 陕西示范校建设专题网站广西营销型网站公司
  • 网站网站制作多少钱网站推广产品怎么做
  • 网站设计与制作的基本步骤滨州做企业网站