力扣80. 删除有序数组中的重复项 IIJava

简介: 力扣80. 删除有序数组中的重复项 IIJava

题目

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

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

image.png

代码

class Solution {

   public int removeDuplicates(int[] nums) {

       int len = nums.length;

       int count = 1;

       int j = 0;

       int res = 1;

       for(int i = 1; i < len; i ++){

           if(nums[i]==nums[j] && count < 2){

               j ++;

               nums[j] = nums[i];

               count ++;

               res ++;

           }

           if(nums[i]!=nums[j]){

               j ++;

               nums[j] = nums[i];

               count = 1;

               res ++;

           }

       }

       return res;

   }

}



相关文章
|
2月前
|
存储 C语言
Leetcode—— 删除排序数组中的重复项——C语言
Leetcode—— 删除排序数组中的重复项——C语言
|
17天前
|
算法 测试技术 程序员
力扣经典150题第二十七题:两数之和 II - 输入有序数组
力扣经典150题第二十七题:两数之和 II - 输入有序数组
13 1
|
1月前
|
存储 算法 Java
【经典算法】LeetCode 26. 删除有序数组中的重复项:(Java/C/Python3实现含注释说明,Easy)
【经典算法】LeetCode 26. 删除有序数组中的重复项:(Java/C/Python3实现含注释说明,Easy)
23 2
|
26天前
|
存储 算法
leetcode题解:88.合并有序数组
leetcode题解:88.合并有序数组
14 0
|
26天前
|
索引
leetcode题解:26.删除有序数组重复项
leetcode题解:26.删除有序数组重复项
10 0
|
1月前
|
存储 算法 数据挖掘
LeetCode 题目 88:双指针\直接\递归\插入排序\归并排序 实现合并两个有序数组
LeetCode 题目 88:双指针\直接\递归\插入排序\归并排序 实现合并两个有序数组
|
1月前
|
数据采集 算法 数据挖掘
LeetCode 题目 80:删除排序数组中的重复项 II【算法面试高频题】
LeetCode 题目 80:删除排序数组中的重复项 II【算法面试高频题】
|
1月前
|
SQL 算法 数据可视化
LeetCode第26题:删除排序数组中的重复项
LeetCode第26题:删除排序数组中的重复项
|
2月前
|
存储 搜索推荐
题目----力扣--合并两个有序数组
题目----力扣--合并两个有序数组
18 0
|
2月前
|
存储 搜索推荐 C语言
Leetcode—合并两个有序数组—C语言
Leetcode—合并两个有序数组—C语言