数组类

总结了一些大神的方法和解题思路,链接也是lc上的感觉好的回答,会经常更新,主要起到督促学习作用,大神轻喷。

一、双指针

应对数组类的问题,一个常见的方法就是双指针。首先要明确:一类问题,一类解,不可能每道题解题方法都一样,但是解题思路可能有类似的地方。

1.有序 数组找到不重复的数字个数:利用双指针p q

  • 如果p q 相等,q后移
  • 不相等,将q位置的数字复制到p+1,同时p后移,并且q后移
  • 直到q等于数组长度
  • 最后返回p+1;
    链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/solution/shuang-zhi-zhen-shan-chu-zhong-fu-xiang-dai-you-hu/

2.无序 数组 给定一个值 数组中元素不等于这个值的个数

  • 如果q位置的数字等于这个数,q递增以跳过这个数
  • 如果q不等于这个数,将q的数字复制到p,p q递增
  • q到达数组末尾,数组长度为p
    链接:https://leetcode-cn.com/problems/remove-element/solution/yi-chu-yuan-su-by-leetcode/

二、二分法

先附链接,明天再写:https://leetcode-cn.com/problems/search-insert-position/solution/te-bie-hao-yong-de-er-fen-cha-fa-fa-mo-ban-python-/

你可能感兴趣的:(数据结构与算法,算法,leetcode,数据结构,java)