日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[剑指offer]面试题第[48]题[Leetcode][JAVA][第3题][无重复字符的最长字串][滑动窗口][HashSet/Map]

發(fā)布時間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [剑指offer]面试题第[48]题[Leetcode][JAVA][第3题][无重复字符的最长字串][滑动窗口][HashSet/Map] 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

【問題描述】[第3題][無重復字符的最長字串]

給定一個字符串,請你找出其中不含有重復字符的 最長子串 的長度。示例 1:輸入: "abcabcbb" 輸出: 3 解釋: 因為無重復字符的最長子串是 "abc",所以其長度為 3。 示例 2:輸入: "bbbbb" 輸出: 1 解釋: 因為無重復字符的最長子串是 "b",所以其長度為 1。

【解答思路】

1. 滑動窗口之 HashMap




時間復雜度:O(N) 空間復雜度:O(N)

public int lengthOfLongestSubstring(String s) {int n = s.length();int ans = 0;Map<Character,Integer> map = new HashMap<>();for(int start=0,end=0; end < n ; end ++){char alpha = s.charAt(end);if(map.containsKey(alpha)){start = Math.max(map.get(alpha), start);}ans = Math.max(ans,end-start +1);//記錄start應該調整到哪里map.put(s.charAt(end),end+1);}return ans;}
2. 滑動窗口之HashSet

時間復雜度:O(N) 空間復雜度:O(N)

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;}

class Solution {public int lengthOfLongestSubstring(String s) {// 哈希集合,記錄每個字符是否出現(xiàn)過Set<Character> occ = new HashSet<Character>();int n = s.length();// 右指針,初始值為 -1,相當于我們在字符串的左邊界的左側,還沒有開始移動int rk = -1, ans = 0;for (int i = 0; i < n; ++i) {if (i != 0) {// 左指針向右移動一格,移除一個字符occ.remove(s.charAt(i - 1));}while (rk + 1 < n && !occ.contains(s.charAt(rk + 1))) {// 不斷地移動右指針occ.add(s.charAt(rk + 1));++rk;}// 第 i 到 rk 個字符是一個極長的無重復字符子串ans = Math.max(ans, rk - i + 1);}return ans;} }
2. 滑動窗口之 數(shù)組(本質HashMap)

時間復雜度:O(N) 空間復雜度:O(N)

public int lengthOfLongestSubstring(String s) {//128個字符 int[] m = new int[128];int len = 0;//i: start j:end for(int i = 0, j = 0; j < s.length(); j++){i = Math.max(m[s.charAt(j)], i);len = Math.max(len, j - i + 1);//記錄i應該調整到哪里m[s.charAt(j)] = j + 1;}return len;}

【總結】

1. 滑動窗口思想 常用于字符數(shù)組題目中
  • 更新start(+1)
  • 邊界思考清楚 start end 迭代
2.Java String 類
3.HashMap 或 HashSet常見用法

3.1 HashSet
(1)增加
public boolean add(E e);
(2)刪除
public boolean remove(Object j);
(3)對比查找
public boolean contains(Object j);
(4)清空集合
public void clear();
(5)獲取長度
public int size();
3.2 HashMap
(1) 插入鍵值對數(shù)據(jù)
public V put(K key, V value)
(2)根據(jù)鍵值獲取鍵值對值數(shù)據(jù)
public V get(Object key)
(3)獲取Map中鍵值對的個數(shù)
public int size()
(4)判斷Map集合中是否包含鍵為key的鍵值對
public boolean containsKey(Object key)
(5)判斷Map集合中是否包含值為value的鍵值對
boolean containsValue(Object value)
(6)判斷Map集合中是否沒有任何鍵值對
public boolean isEmpty()
(7)清空Map集合中所有的鍵值對
public void clear()
(8)根據(jù)鍵值刪除Map中鍵值對
public V remove(Object key)

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結

以上是生活随笔為你收集整理的[剑指offer]面试题第[48]题[Leetcode][JAVA][第3题][无重复字符的最长字串][滑动窗口][HashSet/Map]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 精品成在人线av无码免费看 | 欧美青草视频 | 国产精品一区二区三区在线看 | 青青草这里只有精品 | 午夜a视频| 自拍偷拍亚洲综合 | 韩国成人免费视频 | 一区二区三区日韩在线 | 久久精品国产亚洲AV黑人 | 亚洲一区精品在线 | 亚洲熟妇一区二区三区 | 99re这里只有 | 99国产精品久久久久久久成人 | 伊人成人在线 | 亚洲色图偷拍 | 极品白嫩少妇无套内谢 | 精品三级| 91欧美国产 | 插插看 | 五月天婷婷激情 | 午夜啪啪网站 | 日韩一区二区免费看 | 色综合一区二区三区 | 99riav国产精品 | 久久久久视 | 欧美在线观看一区二区三区 | 老司机精品视频在线 | av免费播放网站 | 9i免费看片黄 | 欧美一级视频免费观看 | 国产午夜精品一区二区三区 | 国产又粗又猛又爽又黄91精品 | 中文字幕精品国产 | free黑人多人性派对hd | 亚洲国产精品激情在线观看 | 欧美色图久久 | 三上悠亚在线播放 | 国产资源站 | 国产一区观看 | 一区二区三区在线视频免费观看 | 日韩欧美成人一区 | 性猛交xxxx乱大交孕妇2十 | 自拍偷拍国产精品 | 99久久亚洲精品 | 极品美女扒开粉嫩小泬 | 99国产精品久久久久久久 | 丰满岳跪趴高撅肥臀尤物在线观看 | 一区二区三区观看 | 久久久久在线 | 公交顶臀绿裙妇女配视频 | 激情福利 | 欧美美女一区 | 蜜臀久久99精品久久一区二区 | 亚州| 精品国产乱码久久久久久图片 | www黄色网| 97视频在线播放 | 亚洲伦理在线视频 | 欧美性天天影院 | 天天狠天天操 | 亚洲成a | 国产高清在线 | 成年人网站免费视频 | www.xxxx国产| 国产精品久久久999 www日本高清视频 | 亚洲av综合色区无码一二三区 | 久久www视频 | 国产女人在线视频 | 精品国产一区二区在线观看 | 91网站大全 | 亚洲国产97在线精品一区 | 精品一区二区在线播放 | 美女视频一区 | 欧美色老头old∨ideo | 亚洲乱码日产精品bd在线观看 | 亚洲欧美综合视频 | 欧美成性色 | 精品福利在线视频 | 电影《走路上学》免费 | 久久久久久久久久久久国产精品 | av黄色在线播放 | 国产一级片久久 | 成人国产片 | 天天噜| 日韩射吧 | 一起操17c | 日韩三级久久 | 欧美激情一区二区三级高清视频 | 欧美黑人孕妇孕交 | 日韩欧美视频在线播放 | 日韩免费av在线 | 欧美日韩久久精品 | 亚洲视频成人 | 成人激情开心 | 天天燥日日燥 | 性欧美8khd高清极品 | 黄色大片在线播放 | 天堂av在线免费 | 青草视频在线观看视频 |