面试经典150题 day3
- 题目来源
- 我的题解
- 方法一 双指针
题目来源
力扣每日一题;题序:26
我的题解
方法一 双指针
使用两个指针分别指向相同元素的左右边界,再利用一个count记录最终需要的数组长度。
时间复杂度:O(n)
空间复杂度:O(1)
public int removeDuplicates(int[] nums) {int left=0,right=1;int n=nums.length;if(n==1)return n;int count=0;while(right<n){//找到相同元素的左右边界while(right<n&&nums[left]==nums[right])right++;//当前相同元素记录如最终的数组count++;left=right;right++;//只有left小于n时才会更新结果数组if(left<n)nums[count]=nums[left];}if(left<n)count++;return count;
}
有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~