滑動視窗演算法
滑動視窗這種解題思路在平常的應用中很常見。
描述
給定一個字串,找出不含有重複字元的最長子串的長度。
示例:
給定 "abcabcbb" ,沒有重複字元的最長子串是 "abc" ,那麼長度就是3。
給定 "bbbbb" ,最長的子串就是 "b" ,長度是1。
給定 "pwwkew" ,最長子串是 "wke" ,長度是3。請注意答案必須是一個子串,"pwke" 是 子序列 而不是子串。
解題思路
public int lengthOfLongestSubstring(String s) { int n = s.length(); Set<Character> set = new HashSet<>(); int ans = 0, i = 0, j = 0; while (i < n && j < n) { // try to extend the range [i, j] if (!set.contains(s.charAt(j))){ set.add(s.charAt(j++)); ans = Math.max(ans, j - i); } else { set.remove(s.charAt(i++)); } } return ans; }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4830/viewspace-2816641/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 滑動視窗演算法思路演算法
- Sentinel滑動視窗演算法演算法
- 【演算法】滑動視窗三步走演算法
- Sentinel 原理-滑動視窗
- 細聊滑動視窗
- 使用 Redis 實現限流——滑動視窗演算法Redis演算法
- 演算法~利用zset實現滑動視窗限流演算法
- 滑動視窗演算法(Sliding Window Algorithm)演算法Go
- 【演算法框架套路】滑動視窗演算法:匹配子串演算法框架
- 滑動視窗(Sliding Window)演算法介紹演算法
- 《面試必備演算法》系列 滑動視窗入門面試演算法
- TCP 流量控制-滑動視窗TCP
- 滑動視窗分析SQL實踐SQL
- 滑動視窗問題總結
- 滑動視窗與雙指標指標
- Flink的滾動視窗、會話視窗、滑動視窗及其應用會話
- 滑動視窗演算法基本原理與實踐演算法
- 演算法題:返回滑動視窗中的最大值演算法
- [分散式限流] 滑動視窗演算法的 Golang 實現分散式演算法Golang
- 7、滑動視窗套路演算法框架——Go語言版演算法框架Go
- mysql視窗函式中的滑動視窗MySql函式
- 自己實現一個滑動視窗
- 力扣刷題-滑動視窗(字串)力扣字串
- leetcode刷題記錄:演算法(三)滑動視窗演算法LeetCode演算法
- WeetCode2滑動視窗系列
- 滑動視窗法——Leetcode例題LeetCode
- 239. 滑動視窗最大值
- TCP的滑動視窗和擁塞控制TCP
- 【完虐演算法系列】「字串 – 滑動視窗」覆盤總結演算法字串
- LC演算法技巧總結(二):雙指標和滑動視窗技巧演算法指標
- Hive實戰—時間滑動視窗計算Hive
- 氣球遊戲騰訊面試題滑動視窗解法遊戲面試題
- 滑動視窗最大值的golang實現Golang
- 滑動視窗相關的題目總結
- 滑動視窗(Sliding Window)技巧總結
- 滑動視窗法——子串相關問題
- [Python手撕]滑動視窗最大值Python
- 滑動視窗最大值——棧與佇列佇列