力扣热题100题型类别心得:

1、哈希表:
哈希表的使用是为了O(1)获取已经遍历过的信息

如两数之和=target,暴力直接两个for循环去找到两个和为目标值的数,也就是遍历数组,拿当前数又去遍历一遍后面的数,实际上这些数的信息在第一次遍历时就已经得到了,暴力解法没有保留这些信息以至于每次都要重新获取;哈希表让机器有了信息记忆。我们得出减少一层循环,优化时间复杂度的一个办法就是记忆已经遍历过的信息

再比如要求最长连续序列,就要从最小值开始数最长的连续序列,而这恰好是数组排序O(n^2),获取连续序列也就是要知道这个数的上一个和下一个,而通过两个哈希表就可以记录这段连续序列的左边界和右边界,同时更新左右边界

2、双指针

双指针有几种常见的题型,同向双指针,相向双指针,滑动窗口~

相向双指针常见于求取一段范围中的值。例如盛水容器和接雨水,就是木桶问题,盛水的多少决定于最短木板,不断更新最短的木板即可

同双双指针常见快慢指针,追及问题等

滑动窗口一般分为定长和不定长,一般我都用不定长的方式来写,然后加上当r-l等于值时就取值