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

大型网站建设开发互联网媒体广告公司

大型网站建设开发,互联网媒体广告公司,做违规网站,网站模板 自适应给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 public cl…

给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。

不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

 

public class Solution {public int RemoveDuplicates(int[] nums) {int slow = 2, fast = 2;int length = nums.Length;if(length <= 2)return length;while(fast < length){if(nums[fast] != nums[slow - 2]){nums[slow] = nums[fast];slow++;}fast++;}return slow;}
}

复杂度分析

  • 时间复杂度:O(n),其中 n 是数组 nums 的长度。双指针各遍历数组一次。

  • 空间复杂度:O(1)。

More

这道题要求删除数组中重复出现的元素,使每个元素最多出现两次。上述做法可以推广到更普遍的情形,即对于任意 x≥1,删除数组中重复出现的元素,使每个元素最多出现 x 次。

对于普遍的情形,做法是首先判断数组长度是否大于 x,如果数组长度小于等于 x 则返回数组长度,如果数组长度大于 x 则使用双指针。

初始时将快指针 fast 和 slow 都指向下标 x,判断当前元素是否为重复元素时比较 nums[fast] 和 nums[slow−x] 是否相等,其余逻辑不变。时间复杂度和空间复杂度与上述做法相同。

下面的代码为这道题在普遍情形下的实现,取 x=2 的特例。

class Solution {public int removeDuplicates(int[] nums) {return removeDuplicatesAtMostX(nums, 2);}public int removeDuplicatesAtMostX(int[] nums, int x) {int length = nums.length;if (length <= x) {return length;}int fast = x, slow = x;while (fast < length) {if (nums[fast] != nums[slow - x]) {nums[slow] = nums[fast];slow++;}fast++;}return slow;}
}

http://www.yayakq.cn/news/22210/

相关文章:

  • 苏州建设银行招聘网站做游戏的软件app
  • 手机怎样使用域名访问网站怎样做简易局域网站点
  • 做网站书网站备案需要网站建设完毕不
  • 0基础学做网站做购物网站的开题报告
  • 海南房地产网站建设品牌好的佛山网站建设价格
  • 橱柜网站建设公司wordpress 调用文章内容
  • wordpress网站新闻定州市住房和城乡建设局 网站
  • 政法网 网站建设wordpress做在线编辑图片
  • 番禺网站 建设信科网络小广告图片素材
  • 彭水县网站开发包头seo哪家专业
  • 发簪做的比较好的网站淘宝客网站开发视频
  • 深圳市网站开发重庆建设招标网站
  • 免费网站搭建上传文件后网站建设中
  • 郑州一建集团工程建设有限公司网站私人装修接单网站
  • 做网站要准备哪些c h5网站开发
  • 山西省诚信建设网站佛山做网站找哪家好
  • 网站系统方案设计怎么查询网站ftp地址
  • 高碑店市建设局网站界面做的最好的网站
  • 网站哪里备案有区别么青建集团股份有限公司
  • 毕业设计商城网站开发网站编辑seo
  • 做网站的流程方法开发一亩地多少钱
  • 建设银行河北省分行网站佛山网站设计实力乐云seo
  • 做图表的网站多少钱算受贿
  • 哪个网站可以做制图兼职商城网站方案
  • 如何做网站链接分析永久免费手机网站建设
  • 网站建设开发综合实训报告wordpress 如何更新
  • 免费自建网站工具深圳3区最新通告
  • 盐城做网站哪家公司好中建西部建设股份有限公司网站
  • 遂昌赶街网站网页布局设计类型
  • 网站整体风格菏泽市建设职工培训中心网站