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

梧州市建设局官方网站360摄像头海澳門地区限制解除

梧州市建设局官方网站,360摄像头海澳門地区限制解除,太原网站制作建设,企业网站优化兴田德润怎么样文章目录前言一、移除元素1.题目介绍2.思路:3.代码二、移动零1.题目介绍2.思路3.代码三、删除有序数组中的重复项1.题目介绍2.思想3.代码四、80. 删除有序数组中的重复项 II1.题目介绍2.思路3.代码4.推荐题解前言 我每个刷题篇的题目顺序都是特别安排的,…

文章目录

  • 前言
  • 一、移除元素
    • 1.题目介绍
    • 2.思路:
    • 3.代码
  • 二、移动零
    • 1.题目介绍
    • 2.思路
      • 3.代码
  • 三、删除有序数组中的重复项
    • 1.题目介绍
    • 2.思想
    • 3.代码
  • 四、80. 删除有序数组中的重复项 II
    • 1.题目介绍
    • 2.思路
    • 3.代码
    • 4.推荐题解


前言

在这里插入图片描述


我每个刷题篇的题目顺序都是特别安排的,目的是循序渐进,以到彻底掌握此类方法,主要分享算法,对于暴力求解的解法不会写,本文章即用的是双指针

一、移除元素

1.题目介绍

对应的是力扣的27.移除元素

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

在这里插入图片描述

2.思路:

我们用快慢指针,快指针向后找不等于val的数(即新数组所需要的值),将其赋给慢指针所在的值,这样子当fast遍历完之后,我们就将不等于val的所有数全部搬到前面了

3.代码

int removeElement(int* nums, int numsSize, int val){int slow =0;int fast=0;if(numsSize==0){return 0;}while(fast<numsSize){if(nums[fast]!=val){nums[slow++]=nums[fast];}fast++;  }return slow;
}

二、移动零

1.题目介绍

题目对应力扣26. 删除有序数组中的重复项

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
请注意 ,必须在不复制数组的情况下原地对数组进行操作。

2.思路

有了前面一题的思路打了基础后,这题基本就和容易就做出来了,我们就可以吧0当成val,让fast找不等于val的值,然后赋给slow所在值,最后将slow以后的值都赋0就行
在这里插入图片描述

3.代码

void moveZeroes(int* nums, int numsSize){int slow=0;int fast=0;while(fast<numsSize){if(nums[fast]!=0){nums[slow++]=nums[fast];}fast++;}for(int i=slow;i<numsSize;i++){nums[i]=0;}
}

三、删除有序数组中的重复项

1.题目介绍

在这里插入图片描述

2.思想

我们定义一个slow和fast,只有fast不等于slow就可以将fast覆盖给slow+1,我们就保留了一个slow

3.代码

int removeDuplicates(int* nums, int numsSize){int slow=0;int fast=0;//这里可以=1,因为第一个始终是会保留的while(fast<numsSize){if(nums[fast]!=nums[slow]){nums[slow+1]=nums[fast];slow++;}fast++;    }return slow+1;}

四、80. 删除有序数组中的重复项 II

1.题目介绍

这题就是检验你是否对于上一题理解是否深刻,题目对应力扣80. 删除有序数组中的重复项 II
在这里插入图片描述

2.思路

双指针移除法虽然是原地操作的算法,但是我们移除元素不就是从待处理的数组里面重新构造出我们所需要的数组,所以这题需要我们有这样子的思想,我们才能理解这种方法,这题需要保留使得出现次数超过两次的元素只出现两次 ,那么我们就需要将处理的数组与我们需要构造的的数组的前两个比较,只有不一样的才能赋给slow

3.代码

int removeDuplicates(int* nums, int numsSize) {if (numsSize <= 2) {return numsSize;}int slow = 2, fast = 2;while (fast < numsSize) {if (nums[slow - 2] != nums[fast]) {nums[slow] = nums[fast];++slow;}++fast;}return slow;
}

4.推荐题解

该题解的解析配合我的解析更加清晰
在这里插入图片描述


http://www.ritt.cn/news/9510.html

相关文章:

  • 澳门出差做网站维护发现漏洞百度联盟广告
  • 织梦分类信息做的网站seo现在还有前景吗
  • 广东省广州市番禺区短视频seo营销
  • 网站建议反馈应该怎么做百度账号怎么改名字
  • 一个网站制作流程媒体软文发稿
  • 个人怎么做淘宝客网站吗91手机用哪个浏览器
  • flash静态网站关键词排名优化技巧
  • 张家口专业做网站公司sem和seo是什么职业岗位
  • 深圳建站公司设计百度关键词搜索量统计
  • 网站没有后台登陆文件夹上海疫情最新消息
  • 阿荣旗人民政府网站建设项目电商网站商品页的优化目标是什么
  • 网站管理助手4.0成都seo推广
  • 闵行网页设计线上seo关键词优化软件工具
  • 网站上图片可以做商业作品吗今日头条新闻消息
  • 个人微信小程序开店网站建设推广优化
  • 网站服务器空间sem搜索引擎营销是什么
  • 公司网站建设计入明细科目网络热词有哪些
  • 组培实验室建设网站竞价账户
  • 重庆网架加工厂网站更新seo
  • 做高效能的父母网站阿里指数数据分析平台
  • 订货网站开发价格鸡西网站seo
  • 舟山网站开发赣州网站seo
  • 网站后台添加文章后怎么不显示做网页多少钱一个页面
  • 网站如何做分布式百度做推广一般要多少钱
  • 荥阳网站建设公司seo网站快速排名外包
  • 花垣县建设局网站推广关键词排名查询
  • 政府网站建设的创新机制网站改版公司哪家好
  • 网站注册人查询百度网站权重查询
  • 做婚介网站可行性报告模板推广网站
  • 17网一起做网店普宁池尾商圈百度手机seo