成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

LeetCode——Longest Substring Without Repeating Char

forsigner / 3219人閱讀

摘要:原問(wèn)題我的沙雕解法無(wú)重復(fù)字母存在重復(fù)字母挨打最暴力的無(wú)腦解法,耗時(shí)。。。

原問(wèn)題

Given a string, find the length of the?longest substring?without repeating characters.

Example 1:
Input: "abcabcbb"
Output: 3 
Explanation: The answer is "abc", with the length of 3. 
Example 2:
Input: "bbbbb"
Output: 1
Explanation: The answer is "b", with the length of 1.
Example 3:
Input: "pwwkew"
Output: 3
Explanation: The answer is "wke", with the length of 3. Note that the answer must be a substring, "pwke" is a subsequence and not a substring.
我的沙雕解法
var lengthOfLongestSubstring = function(s) {
    let recordObj = {};
    let length = s.length;
    let max = 0;
    for(let i = 0; i < length; i++){
        let record = 0;
        for(let g = i; g < length; g++){
            if(recordObj[s[g]] === undefined){//無(wú)重復(fù)字母
                recordObj[s[g]] = true;
                record++;
            }else{//存在重復(fù)字母
                recordObj = {};
                break;
            }
        }
        max = record > max? record:max;
        if(max === length){break;}
    }
    return max;
};

挨打:最暴力的無(wú)腦解法,耗時(shí)672ms。。。

貪心解法學(xué)習(xí)

參考了排名較前的答案,多數(shù)是貪心思想,以下摘抄一位的代碼并加上學(xué)習(xí)的注釋

/**
*   通過(guò)i,j指針計(jì)算子序列長(zhǎng)度
*   j指針:表示當(dāng)前循環(huán)的字母,i指針:表示起點(diǎn)
*   map用于記錄出現(xiàn)過(guò)的字母的相鄰下標(biāo),給予i新的起點(diǎn)
*   重復(fù)字母出現(xiàn)時(shí),比較當(dāng)前起點(diǎn)與map的記錄位置,取較大值,保證連續(xù)子序列,同時(shí)體現(xiàn)貪心:求
*   當(dāng)前可求得的最長(zhǎng)子序列
**/
var lengthOfLongestSubstring = function(s) {
    var n = s.length, ans = 0;
        var map = new Map(); // 記錄出現(xiàn)過(guò)字母的相鄰下標(biāo)
        // try to extend the range [i, j]
        for (var j = 0, i = 0; j < n; j++) {
            if (map.has(s.charAt(j))) {    //若此字母在之前的循環(huán)中出現(xiàn)過(guò)
                i = Math.max(map.get(s.charAt(j)), i);   //保證連續(xù)子序列,同時(shí)體現(xiàn)貪心
            }
            ans = Math.max(ans, j - i + 1);  //比較
            map.set(s.charAt(j), j + 1);  //記錄字母的相鄰位置
        }
        return ans;
};

此算法耗時(shí)108ms
百度到一張圖片很有利于理解
舉例:qpxrjxkltzyx

圖片來(lái)源:https://www.cnblogs.com/wangk...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/108979.html

相關(guān)文章

  • [Leetcode]Longest Substring Without Repeating Char

    摘要:解題思路本題借助實(shí)現(xiàn)。如果字符未出現(xiàn)過(guò),則字符,如果字符出現(xiàn)過(guò),則維護(hù)上次出現(xiàn)的遍歷的起始點(diǎn)。注意點(diǎn)每次都要更新字符的位置最后返回時(shí),一定要考慮到從到字符串末尾都沒(méi)有遇到重復(fù)字符的情況,所欲需要比較下和的大小。 Longest Substring Without Repeating CharactersGiven a string, find the length of the lon...

    awesome23 評(píng)論0 收藏0
  • [LeetCode] Longest Substring Without Repeating Cha

    摘要:建立數(shù)組,存儲(chǔ)個(gè)字符最近一次出現(xiàn)的位置。首次出現(xiàn)某字符時(shí),其位置標(biāo)記為,并用無(wú)重復(fù)字符計(jì)數(shù)器記錄無(wú)重復(fù)字符的長(zhǎng)度,再在更新其最大值。循環(huán)完整個(gè)字符串后,返回最大值。 Problem Given a string, find the length of the longest substring without repeating characters. Examples: Given ...

    CoderStudy 評(píng)論0 收藏0
  • leetcode 3 Longest Substring Without Repeating Cha

    摘要:題目詳情題目要求輸入一個(gè)字符串,我們要找出其中不含重復(fù)字符的最長(zhǎng)子字符串,返回這個(gè)最長(zhǎng)子字符串的長(zhǎng)度。對(duì)于字符串中的每一個(gè)字符,先判斷中是否已經(jīng)存在這個(gè)字符,如果不存在,直接將添加到,如果已存在,則新的字符串就從不含前一個(gè)字符的地方開始。 題目詳情 Given a string, find the length of the longest substring without repe...

    xcold 評(píng)論0 收藏0
  • [Leetcode] Longest Substring Without Repeating Cha

    摘要:哈希表是最自然的想法。在遍歷字符串時(shí),我們先根據(jù)哈希表找出該字符上次出現(xiàn)的位置,如果大于等于子字符串首,便更新子字符串首。結(jié)束后,將該字符新的位置放入哈希表中。 Longest Substring Without Repeating Characters 最新更新解法:https://yanjia.me/zh/2018/12/... Given a string, find the ...

    FleyX 評(píng)論0 收藏0
  • [LeetCode] Longest Substring Without Repeating Cha

    Problem Given a string, find the length of the longest substring without repeating characters. Examples Given abcabcbb, the answer is abc, which the length is 3. Given bbbbb, the answer is b, with the...

    graf 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<