首先刷了:长度最小的子数组,和无重复字符的最长数组
两道题都用了滑动窗口的思想(双指针),可以总结一下做题模板:
1. 首先是左右指针的定义,这里要看具体条件怎么定义,一般要考虑一下极端的情况。
2. 然后就是窗口内部元素满足的条件定义,这里主要有总和、重复、一定的数目等等,
总和一般是不断在循环内部累加;
重复则是可以用到HashSet这个API,来储存已经出现过的元素(contains方法),还要经常用到add和remove方法
一定的数目可以用前缀和,也可以用HashMap
首先刷了:长度最小的子数组,和无重复字符的最长数组
两道题都用了滑动窗口的思想(双指针),可以总结一下做题模板:
1. 首先是左右指针的定义,这里要看具体条件怎么定义,一般要考虑一下极端的情况。
2. 然后就是窗口内部元素满足的条件定义,这里主要有总和、重复、一定的数目等等,
总和一般是不断在循环内部累加;
重复则是可以用到HashSet这个API,来储存已经出现过的元素(contains方法),还要经常用到add和remove方法
一定的数目可以用前缀和,也可以用HashMap