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

品牌词类的网站怎么做优化手机怎么建立网站

品牌词类的网站怎么做优化,手机怎么建立网站,腾讯云搭建ip教程,自己建网站数据怎么做从0开始的秋招刷题路,记录下所刷每道题的题解,帮助自己回顾总结 80. 删除有序数组中的重复项 II 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长…

从0开始的秋招刷题路,记录下所刷每道题的题解,帮助自己回顾总结

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

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

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

说明:
为什么返回数值是整数,但输出的答案是数组呢?
请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:

// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝
int len = removeDuplicates(nums);

// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中 该长度范围内 的所有元素。
for (int i = 0; i < len; i++) {
print(nums[i]);
}

示例 1:
输入:nums = [1,1,1,2,2,3]
输出:5, nums = [1,1,2,2,3]
解释:函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。 不需要考虑数组中超出新长度后面的元素。

示例 2:
输入:nums = [0,0,1,1,1,1,2,3,3]
输出:7, nums = [0,0,1,1,2,3,3]
解释:函数应返回新长度 length = 7, 并且原数组的前五个元素被修改为 0, 0, 1, 1, 2, 3, 3 。 不需要考虑数组中超出新长度后面的元素。

提示:
1 <= nums.length <= 3 * 10410^4104
-10410^4104 <= nums[i] <= 10410^4104
nums 已按升序排列

解题思路
一个指针 i 用来遍历 nums 数组,另一个指针 index 始终指向有效数组的末尾。

当前位置上的元素与其前一个元素不相等时,即 nums[i - 1] != nums[i],进行覆盖并将当前位置的元素 nums[i],放到有效数组中最后的位置并令 count 值重新为 1(因为出现了新的元素并且该元素是第一次出现),即 nums[index++] = nums[i];

当相邻位置相等且 count < 2 时,由于题中说到每个元素最多出现两次,所以该元素还可以出现一次,则将当前位置上的元素放到有效数组中的最后位置并令记录该元素的出现次数,即 count++;

当相邻位置相等且 count == 2 时,说明当前值的元素已经出现连续两个相同的了,则不需要进行任何操作,直接 continue 即可。

直到遍历结束,最后返回有效数组的长度 index 即可。

示例:[1,1,1,2,2,3],其中有效数组长度初始为 index = 1. i = 1,nums[0] == nums[1] 且
count = 1,则 nums[1] = nums[1],count = 2,index = 2; i = 2,nums[1] ==
nums[2] 且 count = 2,直接跳过不进行任何处理; i = 3,nums[2] != nums[3] 则 nums[2] =
nums[3],count = 1,index = 3; i = 4,nums[3] == nums[4] 且 count = 1,则
nums[3] = nums[4],count = 2,index = 4; i = 5,nums[4] != nums[5] 则
nums[4] = nums[5],count = 1,index = 5;

最终返回:index = 5,有效数组为 [1, 1, 2, 2, 3]

注意题中说到的每个元素最多出现两次,可以将两次改为 k 次,此时只需要将第二个判断中的 count < 2 修改为 count < k
即可。

代码

class Solution {public int removeDuplicates(int[] nums) {int n = nums.length;if (n <= 2) return n;int count = 1;int index = 1;for (int i=1;i<n;i++) {if (nums[i] != nums[i - 1]) {nums[index++] = nums[i];count = 1;} else if (count < 2) { // 两个元素值相等并且之前没有重复nums[index++] = nums[i];count++;} else {continue;}}return index;}
}

时间复杂度:O(n) 空间复杂度:O(1)

http://www.hkea.cn/news/87429/

相关文章:

  • 网站做二维码吗做网站的外包公司
  • 郑州市中原区疫情最新消息上海网站营销seo方案
  • 狂人站群系统中国最权威的网站排名
  • 简单网站开发实例网站运营工作的基本内容
  • 飞机免费代理ip爱站网seo综合查询工具
  • 河南焦作有做网站开发的公司吗巩义网络推广公司
  • 邓州做网站网络广告有哪些形式
  • 爬闪数媒 网站建设网站建站流程
  • 网站建设广州白云百度统计app下载
  • 惠州短视频seoseowhy论坛
  • 肇庆网站快速排名优化温州seo排名公司
  • 北京疫情死亡人数最新消息王通seo赚钱培训
  • 北京做网站的外包公司营销策划方案案例范文
  • 专业做酒店网站关键词优化排名软件流量词
  • 做网站推广代理上海网络推广服务
  • wordpress可以做大吗搜索引擎优化的英语简称
  • 民治专业做网站公司中国企业500强排行榜
  • 潍坊 公司 网站seo点击排名器
  • 网站可以做赌博广告建站宝盒
  • 运城市做网站英文seo外链
  • 江宁网站建设如何建立网上销售平台
  • 淄博企业网站建设有限公司搜索引擎关键词竞价排名
  • 网站的优点企业专业搜索引擎优化
  • 哪里有软件开发培训机构无锡seo培训
  • 网站怎么做反链seo是什么品牌
  • 技术型网站做哪一种好软文范例大全100
  • 百度搜索什么关键词能搜到网站seo高效优化
  • 网站搭建分站需要多少钱互联网营销策划
  • 音乐网站的音乐怎么做seo先上排名后收费
  • 清河做网站报价seo实战培训王乃用