记录学习的第三十一天
今天只做了一道每日一题。
说实话,根本不会做呀,该怎么办?
以下是我看了题解之后的思路(适合新手):
1.首先肯定是要求出整个数组的不同数字有多少个的使用set来操作
2.右指针开始进入窗口,把元素放进哈希表中,如果此时窗口的元素到达了整个数组的不同数字的个数,就进行下一步出窗口操作
3.出窗口操作需要移动左指针,同时在哈希表中把这个元素的出现次数减一,如果此时减一之后发现等于0了,那么这个元素就不存在哈希表中了,把它在哈希表中删除,另外,此时窗口中的元素的种类就不满足等于整个数组的不同数字的个数的要求了。此时窗口为[left,right]。
4.不过要注意的是假设固定在right时,left位置不满足,但是前一次的窗口是满足的,前前前……次也是满足的,那么就可以计算出固定right时有多少个窗口是满足的:从0~left-1一共有left个窗口。