记录学习的第三十一天

  今天只做了一道每日一题。

 

 说实话,根本不会做呀,该怎么办?

以下是我看了题解之后的思路(适合新手):

1.首先肯定是要求出整个数组的不同数字有多少个的使用set来操作

2.右指针开始进入窗口,把元素放进哈希表中,如果此时窗口的元素到达了整个数组的不同数字的个数,就进行下一步出窗口操作

3.出窗口操作需要移动左指针,同时在哈希表中把这个元素的出现次数减一,如果此时减一之后发现等于0了,那么这个元素就不存在哈希表中了,把它在哈希表中删除,另外,此时窗口中的元素的种类就不满足等于整个数组的不同数字的个数的要求了。此时窗口为[left,right]。

4.不过要注意的是假设固定在right时,left位置不满足,但是前一次的窗口是满足的,前前前……次也是满足的,那么就可以计算出固定right时有多少个窗口是满足的:从0~left-1一共有left个窗口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值