2025年--Lc161 --H80.删除有序数组中的重复项 II(数组和字符串)--Java版
1.题目
2.思路
(1)stacksize 相当于“结果区长度/栈顶后一位”。
(2)每次拿当前 nums[i] 和“结果区倒数第 2 个”比较:若不同则写入(表示当前值还没出现到 2 次)。
(3)这样自然保证了每个值最多保留 2 个。
3.代码实现
class Solution {public int removeDuplicates(int[] nums) {int stacksize=2;//栈的大小,前2个元素保留for(int i=2;i<nums.length;i++){//和栈顶下方的元素比较if(nums[i]!=nums[stacksize-2]){//入栈nums[stacksize]=nums[i];stacksize++;}}// return Math.min(stacksize,nums.length);return stacksize;}
}