#naru今天刷力扣了么#
这个双指针是不是有点抽象了。
数组做记录倒是很好想... 就是双指针这个追赶 有点阴间。
为了确定双指针的正确位置。里层套了while循环... 来定位以及纠正left..
一般情况下如果left和right所在的位置不合适,他俩其实是一起变动的。直到找到相同字符的那个左边界。left将停止变化。然后这里就开始变得不太好理解了,比如
s1= "ab" s2 = "eidboaoo",其实一开始是可以找到 s2 的三号位 'b' 的,但是其实是错的边界,因为b后面跟着的不是a而是o 所以 while 从确认这个 left 边界以后又起到了纠正边界的作用..这个双指针做法最后的一个if判断便是确定长度right和left之间的长度是否为n即可.. 其实我倒是不太好想到有什么反例可以符合while循环的同时又不符合if... 感觉确定left边界是最重要的一件事.. 剩下的就是反复修改这个边界..
这个双指针是不是有点抽象了。
数组做记录倒是很好想... 就是双指针这个追赶 有点阴间。
为了确定双指针的正确位置。里层套了while循环... 来定位以及纠正left..
一般情况下如果left和right所在的位置不合适,他俩其实是一起变动的。直到找到相同字符的那个左边界。left将停止变化。然后这里就开始变得不太好理解了,比如
s1= "ab" s2 = "eidboaoo",其实一开始是可以找到 s2 的三号位 'b' 的,但是其实是错的边界,因为b后面跟着的不是a而是o 所以 while 从确认这个 left 边界以后又起到了纠正边界的作用..这个双指针做法最后的一个if判断便是确定长度right和left之间的长度是否为n即可.. 其实我倒是不太好想到有什么反例可以符合while循环的同时又不符合if... 感觉确定left边界是最重要的一件事.. 剩下的就是反复修改这个边界..
打卡:
刷力扣题,通过8道✅今天没有做难题
感觉现在做简单和中等题和大佬们的差距就在于利用if把是否满足某个条件映射为1和0了。加油!
PS.今天接到一份外企投递邀请,才开始写英文简历[晕]花了一个多钟,还是在用超级简历翻译基础上的!英语真的丢了……
PS*2.超级简历真的无语=_=今天登录又发现之前做好保存下载过的简历不见了……不是第一次了……改改bug吧超级简历大佬们
刷力扣题,通过8道✅今天没有做难题
感觉现在做简单和中等题和大佬们的差距就在于利用if把是否满足某个条件映射为1和0了。加油!
PS.今天接到一份外企投递邀请,才开始写英文简历[晕]花了一个多钟,还是在用超级简历翻译基础上的!英语真的丢了……
PS*2.超级简历真的无语=_=今天登录又发现之前做好保存下载过的简历不见了……不是第一次了……改改bug吧超级简历大佬们
#naru今天刷力扣了么#
这个我是真的之前完全没做过甚至没看过这道题
...
然后看到这题目一般二进制相关得题目也就那几种操作 不过其实这道题二进制倒不是啥重点最主要是 子数组。
涉及到子数组一般我们就可以想到是用前缀和方法去求解题目了,然后我觉得这个题目的技巧就是把题意转换了一下:
由于「0 和 1 的数量相同」等价于「1 的数量减去 0 的数量等于 0」,我们可以将数组中的 0 视作 -1,则原问题转换成「求最长的连续子数组,其元素和为 0」。
怎么记住前缀和以及个数,这里引入了一个哈希表去存储。
然后最后令人比较难以理解的地方就在于 评论区图的这几句话... 纯看这几句话我真的不太能get到他到底在做些什么... 最后是debug了一段时间才get到 其实最主要还是求了一个k-j长度的子数组 这个子数组保证有相同0,1个数。
我真的觉得 前缀和类型的题一开始不太好理解... 这个涉及到哈希表更加不好考虑了
这个我是真的之前完全没做过甚至没看过这道题
...
然后看到这题目一般二进制相关得题目也就那几种操作 不过其实这道题二进制倒不是啥重点最主要是 子数组。
涉及到子数组一般我们就可以想到是用前缀和方法去求解题目了,然后我觉得这个题目的技巧就是把题意转换了一下:
由于「0 和 1 的数量相同」等价于「1 的数量减去 0 的数量等于 0」,我们可以将数组中的 0 视作 -1,则原问题转换成「求最长的连续子数组,其元素和为 0」。
怎么记住前缀和以及个数,这里引入了一个哈希表去存储。
然后最后令人比较难以理解的地方就在于 评论区图的这几句话... 纯看这几句话我真的不太能get到他到底在做些什么... 最后是debug了一段时间才get到 其实最主要还是求了一个k-j长度的子数组 这个子数组保证有相同0,1个数。
我真的觉得 前缀和类型的题一开始不太好理解... 这个涉及到哈希表更加不好考虑了
✋热门推荐