题目列表

easy

medium


技巧与分析

若是单纯对数组的线性操作,利用List或者Map等数据结构和它们的各种方法,能够实现空间换时间(1,217,219,349)

但是题目往往没有那么简单,对于数组中各个元素的对比,移动,交换能操作,一般都会用到双指针,有时候会将数组先排序后再利用双指针。

双指针在数组中的应用非常普遍,比如

  • 对比或交换数组元素的位置(26,27,88,283,453,495)
  • 缩小范围,直至确定位置(167)

有些问题可以直接用排序或者是二分查找解决,属于是简单题中的简单题了(35,169,268,278)


重点思想:

228. 汇总区间中的双指针技巧有效的避免的复杂的边界讨论,设置i,然后用low=ihigh=i-1来设置,这种思想在495. 提莫攻击中再一次被应用,在寻找一个区间时,尤其好用

303. 区域和检索 - 数组不可变中的确定数组中任意两个元素的差值,所涉及的前缀和思想,可以说是非常巧妙

350. 两个数组的交集 II中的记录数字出现次数,和字符串出现次数可以说是一模一样了

448. 找到所有数组中消失的数字中的思想,非常重要,可以说是空间换时间的典范,直接用本身的数组就可以起到记录信息的作用

463. 岛屿的周长中是第一次遍历矩阵的问题,注意单向遍历,注意不要增加多的空间