
个人回顾使用
阿牛哥666
越努力越幸运
展开
-
滑动窗口~~~ 最长无重复子字符串
最长无重复子字符串,顾名思义:串s=abcdcb的最长字串是abcd,长度为4程序员最基本的操作,方法一,使用双指针,也就是模拟一个滑动窗口,每次向窗口后添加一个字符,添加前先遍历窗口中的字符,若没有出现过,添加到窗口后面,记录窗口的最大值;若窗口中出先过,则缩小窗口至出现重复位的下一位,把新的字符添加进去,依次执行,每次取最大值。方法一容易想到,但是!!! 在最坏的情况,时间复杂度会达到O(2的N次方),这是耻辱!!!方法二:算了,直接方法三吧方法三:看出现的字符可以知道,最多有A.原创 2020-09-27 20:56:41 · 259 阅读 · 0 评论 -
滑动窗口~~~~~~~
看了leetcode上的滑动窗口求区间长度k内的最大值,第一种解决方案就是使用暴力,每次都循环遍历长度为k的区间,这是作为一个程序员最基本的思维,最起码有解决方法,但是此方案的时间复杂度堪比灾难,o(n*n)的时间复杂度,肿么办,优化吧!优化思路:采用双端队列的方法来解决,具体思路就是,定义一个双端队列,用来存储比较的过程,队列中第一个数是队列中的最大数,后面的都是小于第一个的,每次从原数组中取一个数,与双端队列第一个数(最大数)进行比较,若大于第一个数就把队列清空,把这个数放入队列,若小于等于这个原创 2020-09-27 19:42:38 · 224 阅读 · 0 评论