2022-2-11 80.删除有序数组中的重复项II
第一版:
问题在于,检测不到的时候赋值一次,检测到了赋值两次,
检测不到的情况会出现于数组中的数据发生了变化的时候。
#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相关推荐
- 80. 删除有序数组中的重复项 II
80. 删除有序数组中的重复项 II Ideas 没啥技术含量,从后往前,check+delete. Code Python class Solution:def removeDuplicates(s ...
- 14. Leetcode 80. 删除有序数组中的重复项 II (数组-同向双指针-快慢指针)
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度.不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条 ...
- leetcode 80. 删除有序数组中的重复项 II
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的 ...
- 2021-05-11(80. 删除有序数组中的重复项 II)
没想到双指针. class Solution {public int removeDuplicates(int[] nums) {int n=nums.length;if(n<=2){retur ...
- Leecode刷题【1数组专题4】80. 删除排序数组中的重复项II (以及通用解法)
Leecode刷题 [1数组专题4]80. 删除排序数组中的重复项II (以及通用解法) 题目: 思路 双指针法: (错误代码) 正解: 通用解法: 题目: 给你一个有序数组 nums ,请你 原地 ...
- 80. 删除排序数组中的重复项 II golang
80. 删除排序数组中的重复项 II 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O ...
- LeetCode 80. 删除排序数组中的重复项 II
1. 题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完 ...
- 【数据结构与算法】之深入解析“删除有序数组中的重复项”与“移除元素”的求解思路与算法示例
删除有序数组中的重复项 一.题目要求 给你一个升序排列的数组 nums ,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度.元素的相对顺序应该保持 一致 . 由于在某些语言中不 ...
- 力扣——删除有序数组中的重复项
删除有序数组中的重复项 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 ...
最新文章
- 【python教程入门学习】七夕情人节表白|Python程序员的花式表白
- 数据库事务的ACID特性及含义
- Ansible详解(二)
- junit initializationError
- Android 系统使用USB OTG功能/打开USB Host API功能
- 如何实现线程间的通讯(转载)
- CV+游戏,美国游戏开发公司 Rockstar Games 寻找优秀动画程序员
- Java基础知识强化68:基本类型包装类之Character概述和Character常见方法
- Concept Drift(概念漂移)
- HDU 2196 Computer 树形DP
- bzoj2697特技飞行*
- 定时清理文件夹bat程序
- MySQL 导入数据 时间数据 不准确 解决办法
- vue切换路由不重新渲染_Vue来回切换页面不重新加载 --keep-alive
- 集思录REITs基金数据python爬取写入EXCEL表
- 6个实用的红米手机技巧
- Xilinx-7Series-FPGA高速收发器使用学习—TX发送端介绍
- 疫情后推动出行即服务
- 传感器自学笔记第五章——旋转编码器
- 计算机专业未来规划作文英文,我的未来计划英语作文范文(通用10篇)