第一版:
问题在于,检测不到的时候赋值一次,检测到了赋值两次,
检测不到的情况会出现于数组中的数据发生了变化的时候。

#include<iostream>
#include<vector>
using namespace std;int removeDuplicates(vector<int>& nums) {int i = 0;int j = 0;while(i < nums.size()){int cnt = 0;while(i < nums.size()-1 && nums[i] == nums[i+1]){//if(cnt == 0){//  j = i+1;//j += 2;不能跳一定要跟着赋值//}if(cnt < 2){nums[j++] = nums[i];//问题在于,下面在第一次不同的时候赋值了一次,这里又赋值了两次//总共就赋值了3次}i++;cnt++;}if(cnt > 0)i++;nums[j++] = nums[i];}return j;}int main(void){vector<int> nums = {1,1,1,2,2,2,3,3};//{0,0,1,1,1,1,2,3,3};//{1,1,1,2,2,3};int len = removeDuplicates(nums);for(int i = 0;i < len;i++){cout << nums[i] << " ";}cout << endl;return 0;
}

第二版

class Solution {public:int removeDuplicates(vector<int>& nums) {int n = nums.size();if (n <= 2) {return n;}//需要对特殊的长度进行判断//如果是小于 2 就需要直接返回。int slow = 2, fast = 2;while (fast < n) {if (nums[slow - 2] != nums[fast]) {nums[slow] = nums[fast];++slow;//前两个直接不用管}++fast;}return slow;}
};作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array-ii/solution/shan-chu-pai-xu-shu-zu-zhong-de-zhong-fu-yec2/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2022-2-11 80.删除有序数组中的重复项II相关推荐

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

    80. 删除有序数组中的重复项 II Ideas 没啥技术含量,从后往前,check+delete. Code Python class Solution:def removeDuplicates(s ...

  2. 14. Leetcode 80. 删除有序数组中的重复项 II (数组-同向双指针-快慢指针)

    给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度.不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条 ...

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

    给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的 ...

  4. 2021-05-11(80. 删除有序数组中的重复项 II)

    没想到双指针. class Solution {public int removeDuplicates(int[] nums) {int n=nums.length;if(n<=2){retur ...

  5. Leecode刷题【1数组专题4】80. 删除排序数组中的重复项II (以及通用解法)

    Leecode刷题 [1数组专题4]80. 删除排序数组中的重复项II (以及通用解法) 题目: 思路 双指针法: (错误代码) 正解: 通用解法: 题目: 给你一个有序数组 nums ,请你 原地 ...

  6. 80. 删除排序数组中的重复项 II golang

    80. 删除排序数组中的重复项 II 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O ...

  7. LeetCode 80. 删除排序数组中的重复项 II

    1. 题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完 ...

  8. 【数据结构与算法】之深入解析“删除有序数组中的重复项”与“移除元素”的求解思路与算法示例

    删除有序数组中的重复项 一.题目要求 给你一个升序排列的数组 nums ,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度.元素的相对顺序应该保持 一致 . 由于在某些语言中不 ...

  9. 力扣——删除有序数组中的重复项

    删除有序数组中的重复项 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 ...

最新文章

  1. 【python教程入门学习】七夕情人节表白|Python程序员的花式表白
  2. 数据库事务的ACID特性及含义
  3. Ansible详解(二)
  4. junit initializationError
  5. Android 系统使用USB OTG功能/打开USB Host API功能
  6. 如何实现线程间的通讯(转载)
  7. CV+游戏,美国游戏开发公司 Rockstar Games 寻找优秀动画程序员
  8. Java基础知识强化68:基本类型包装类之Character概述和Character常见方法
  9. Concept Drift(概念漂移)
  10. HDU 2196 Computer 树形DP
  11. bzoj2697特技飞行*
  12. 定时清理文件夹bat程序
  13. MySQL 导入数据 时间数据 不准确 解决办法
  14. vue切换路由不重新渲染_Vue来回切换页面不重新加载 --keep-alive
  15. 集思录REITs基金数据python爬取写入EXCEL表
  16. 6个实用的红米手机技巧
  17. Xilinx-7Series-FPGA高速收发器使用学习—TX发送端介绍
  18. 疫情后推动出行即服务
  19. 传感器自学笔记第五章——旋转编码器
  20. 计算机专业未来规划作文英文,我的未来计划英语作文范文(通用10篇)

热门文章

  1. java读取aac文件_以AAC格式录制和播放声音
  2. wikioi 1069 关押罪犯
  3. 大数据关键技术——MapReduce
  4. 打造前端MAC工作站(六)MAC上的压缩软件,keka和atool
  5. 未转变者空投指令服务器,未转变者指令 有没有 给个答案
  6. java基于ssm的公司员工考勤管理系统
  7. 自媒体文章标题怎么写才吸引人,19种标题框架写出十万加阅读量不再是梦
  8. 急切寻求电路方面人才
  9. Kotlin 仿微信长按列表弹出菜单(动画)
  10. 2.Java语言跨平台原理?