摘要:示例輸入輸出解釋因?yàn)闊o(wú)重復(fù)字符的最長(zhǎng)子串是,所以其長(zhǎng)度為。請(qǐng)注意,你的答案必須是子串的長(zhǎng)度,是一個(gè)子序列,不是子串。若沒(méi)有重復(fù)元素,則區(qū)間右邊擴(kuò)大,否則區(qū)間左邊縮小。
題目地址:
https://leetcode-cn.com/probl...
題目描述:
給定一個(gè)字符串,請(qǐng)你找出其中不含有重復(fù)字符的 最長(zhǎng)子串 的長(zhǎng)度。
示例 1:
輸入: "abcabcbb"
輸出: 3
解釋: 因?yàn)闊o(wú)重復(fù)字符的最長(zhǎng)子串是 "abc",所以其長(zhǎng)度為 3。
示例 2:
輸入: "bbbbb"
輸出: 1
解釋: 因?yàn)闊o(wú)重復(fù)字符的最長(zhǎng)子串是 "b",所以其長(zhǎng)度為 1。
示例 3:
輸入: "pwwkew"
輸出: 3
解釋: 因?yàn)闊o(wú)重復(fù)字符的最長(zhǎng)子串是 "wke",所以其長(zhǎng)度為 3。
請(qǐng)注意,你的答案必須是 子串 的長(zhǎng)度,"pwke" 是一個(gè)子序列,不是子串。
解答:
利用雙指針?lè)ǎp指針維護(hù)了一個(gè)滑動(dòng)的區(qū)間,在用一個(gè)哈希表記錄這個(gè)區(qū)間里的字符及其個(gè)數(shù),對(duì)一個(gè)區(qū)間
進(jìn)行檢查,每一次這個(gè)區(qū)間沒(méi)有重復(fù)元素就跟結(jié)果比較大小來(lái)選擇是否更新結(jié)果。若沒(méi)有重復(fù)元素,則區(qū)間右邊
擴(kuò)大,否則區(qū)間左邊縮小。直至到達(dá)邊界。(需要注意的是,這里的字符不僅僅是"A"到"z",因此hash數(shù)組需要開(kāi)的大一些,來(lái)容納那些ASCII碼大的字符。)
java ac代碼:
class Solution { public int lengthOfLongestSubstring(String s) { if(s.length() == 0)return 0; int ans = 1; int[]hash = new int[200]; hash[s.charAt(0)] = 1; for(int i = 0,j = 0;i <= j && j < s.length();) { boolean flag = false; for(int k = 0 ;k < hash.length ;k++) if(hash[k] > 1){flag = true;break;} if(!flag) { ans = Math.max(ans,j-i+1); j++; if(j < s.length()) hash[s.charAt(j)]++; else break; } else { hash[s.charAt(i)]--; i++; } } return ans; } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/73664.html
摘要:圖因此可以成為樹(shù),在所有可能的樹(shù)中,具有最小高度的樹(shù)被稱為最小高度樹(shù)。給出這樣的一個(gè)圖,寫(xiě)出一個(gè)函數(shù)找到所有的最小高度樹(shù)并返回他們的根節(jié)點(diǎn)。因此使用一個(gè)數(shù)組代表每個(gè)節(jié)點(diǎn)的入度,若入度為就是葉子節(jié)點(diǎn)。 題目地址:https://leetcode-cn.com/probl...題目描述: 對(duì)于一個(gè)具有樹(shù)特征的無(wú)向圖,我們可選擇任何一個(gè)節(jié)點(diǎn)作為根。圖因此可以成為樹(shù),在所有可能的樹(shù)中,具有最小...
摘要:關(guān)于遞歸這里提一兩點(diǎn)遞歸基本有這幾步遞歸的模板,終止條件,遞歸調(diào)用,邏輯處理。 ?作者簡(jiǎn)介:大家好,我是車神哥,府學(xué)路18號(hào)的車神? ?個(gè)人主頁(yè):應(yīng)無(wú)所住而生...
摘要:題目地址題目描述給定一個(gè)沒(méi)有重復(fù)數(shù)字的序列,返回其所有可能的全排列。 題目地址:https://leetcode-cn.com/probl...題目描述:給定一個(gè)沒(méi)有重復(fù)數(shù)字的序列,返回其所有可能的全排列。 示例: 輸入: [1,2,3]輸出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]解答:利用遞歸,我們可...
摘要:有效二叉搜索樹(shù)定義如下節(jié)點(diǎn)的左子樹(shù)只包含小于當(dāng)前節(jié)點(diǎn)的數(shù)。所有左子樹(shù)和右子樹(shù)自身必須也是二叉搜索樹(shù)。而我們二叉搜索樹(shù)保證了左子樹(shù)的節(jié)點(diǎn)的值均小于根節(jié)點(diǎn)的值,根節(jié)點(diǎn)的值均小于右子樹(shù)的值,因此中序遍歷以后得到的序列一定是升序序列。 ...
閱讀 2491·2023-04-25 19:27
閱讀 3568·2021-11-24 09:39
閱讀 3983·2021-10-08 10:17
閱讀 3457·2019-08-30 13:48
閱讀 2008·2019-08-29 12:26
閱讀 3182·2019-08-28 17:52
閱讀 3593·2019-08-26 14:01
閱讀 3592·2019-08-26 12:19