摘要:題目解法最重要的是把最后一次出現(xiàn)的這個(gè)的記在的里面。所以當(dāng)出現(xiàn)不止兩個(gè)的數(shù)的時(shí)候,把這個(gè)最低的刪掉,把最的加就可以啦
題目:
Given a string, find the length of the longest substring T that contains at most 2 distinct characters.
For example, Given s = “eceba”,
T is "ece" which its length is 3.
解法:
//最重要的是把最后一次出現(xiàn)的這個(gè)char的index記在hashmap的value里面。所以當(dāng)出現(xiàn)不止兩個(gè)distinc的數(shù)的時(shí)候,把這個(gè)value最低的char刪掉,把最lo的index加1就可以啦 public int lengthOfLongestSubstringTwoDistinct(String s) { if (s.length() < 1) return 0; Mapmap = new HashMap (); int lo = 0; int hi = 0; int maxLength = 0; for (int i = 0; i < s.length(); i++) { if (map.size() <= 2) { char c = s.charAt(i); map.put(c, i); hi++; } if (map.size() > 2) { int leftMost = s.length(); for (int value : map.values()) { leftMost = Math.min(leftMost, value); } lo = leftMost + 1; char c = s.charAt(leftMost); map.remove(c); } maxLength = Math.max(maxLength, hi - lo); } return maxLength; }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/64877.html
摘要:表示某個(gè)最后一次出現(xiàn)的地方可能只包含一種或者兩種只包含一種強(qiáng)制保持出現(xiàn)兩種保證,為了計(jì)算方便出現(xiàn)第三種的時(shí)候,直接計(jì)算出當(dāng)前長(zhǎng)度。 Given a string, find the length of the longest substring T that contains at most 2 distinct characters. For example, Given s = e...
Problem Given a string s , find the length of the longest substring t that contains at most 2 distinct characters. Example 1: Input: ecebaOutput: 3Explanation: t is ece which its length is 3.Example ...
摘要:最新思路解法哈希表法復(fù)雜度時(shí)間空間思路我們遍歷字符串時(shí)用一個(gè)哈希表,但這個(gè)哈希表只記錄兩個(gè)東西,一個(gè)字母和它上次出現(xiàn)的時(shí)的下標(biāo),另一個(gè)字母和它上次出現(xiàn)時(shí)候的下標(biāo)。這個(gè)通過(guò)用哈希表記錄字母上次出現(xiàn)的下標(biāo),來(lái)維護(hù)一個(gè)窗口的方法也可以用于。 Longest Substring with At Most Two Distinct Characters 最新思路解法:https://yanjia...
摘要:使用而不是因?yàn)槲覀冃枰氖亲钪?,中間值我們不在乎,所以一次收斂到最小。下面來(lái)三個(gè)需要查重并且記錄上次出現(xiàn)的位置,選擇以為例,走到用做檢查,發(fā)現(xiàn)出現(xiàn)過(guò),把移到的下一個(gè)。是上個(gè)題目的簡(jiǎn)易版,或者特殊版。 這里聊一聊解一類(lèi)問(wèn)題,就是滿(mǎn)足某一條件的substring最值問(wèn)題。最開(kāi)始我們以Minimum Window Substring為例,并整理總結(jié)leetcode里所有類(lèi)似題目的通解。 Gi...
摘要:每次搜索中,我們通過(guò)哈希表維護(hù)一個(gè)窗口,比如中,我們先拿出。如果都不在數(shù)組中,那說(shuō)明根本不能拼進(jìn)去,則哈希表全部清零,從下一個(gè)詞開(kāi)始重新匹配。 Substring with Concatenation of All Words You are given a string, s, and a list of words, words, that are all of the same...
閱讀 3436·2023-04-25 22:44
閱讀 950·2021-11-15 11:37
閱讀 1644·2019-08-30 15:55
閱讀 2658·2019-08-30 15:54
閱讀 1096·2019-08-30 13:45
閱讀 1444·2019-08-29 17:14
閱讀 1866·2019-08-29 13:50
閱讀 3424·2019-08-26 11:39