Featured image of post 算法-数组

算法-数组


图片来自代码随想录总结。(@代码随想录-数组总结

二分法

适用条件:

  1. 无重复元素;
  2. 有序数组

双指针

  1. 需要注意两个指针的作用,它们分别指向什么
  2. 对于27,fast快指针指向的是新数组的元素,而slow慢指针指向的是新数组元素对应的下标,283同上

26 删除有序数组中的重复项

因为是递增序列,说明相同项在一起,并且前后是从大到小排列的
删除重复项,需要定义两个指针p和q–> 这里q指向第二个位置,p指向第一个位置
比较nums[p]是否与nums[q]相等——for循环:如果相等,q后移一位;如果不相等,那么nums[q]需要赋值给nums[p+1],p后移一位;
最终返回唯一元素的个数,由于已经删除重复元素,所以数组长度就是最终的唯一元素个数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
class Solution{
    public int removeDuplicates(int[] nums){
        int p=0,q=1;
        for(q=1;q < nums.length;q++){
            if(nums[p]!=nums[q]){
		nums[p+1]=nums[q];
		p++;
	    }
	}
	return p+1;
    }
}
页面浏览量Loading
明天一定会有好事发生哦⭐
😎总访客数:Loading🥰总访问量:Loading 👻数据统计

使用 Hugo 构建
主题 StackJimmy 设计