国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

每天一題LeetCode[第三天]

2019-11-10 22:13:24
字體:
供稿:網(wǎng)友

每天一題LeetCode[第三天]


Longest Substring Without Repeating Characters

Description:
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 length of 1.Given "pwwkew", 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.Subscribe to see which companies asked this question

解題過程:

這一題題意比較簡單,能馬上明白意思,由于做過第一天的題目,所以馬上想到了利用map的數(shù)據(jù)結(jié)構(gòu)特性,把下標(biāo)和字符結(jié)合起來,并利用map的唯一性的特點,進(jìn)行數(shù)據(jù)的保存。

一開始思路雖然對了,跟top solution一樣,但是提交了很多次都沒過,因為還有很多小細(xì)節(jié)處理有問題。比如對max的更新一開始放到了 containkey中,后來發(fā)現(xiàn)不行,因為如果都沒有重復(fù)的字符串,max就為0。然后換了思路,每次循環(huán)都更新max,記錄第一個重復(fù)的字符的下標(biāo)。但是在得到的方式有問題,如果只是單純的賦值是有問題的,因為map上一次數(shù)據(jù)除了重復(fù)的處理了,其他數(shù)據(jù)依舊保存的,所以要進(jìn)行max處理,取最大值,并且firstIndex這個值英國是取自身和重復(fù)字符下標(biāo)值+1兩者的最大值。


java代碼:

public static int lengthOfLongestSubstring(String s){ if(null==s || s.length()==0){ return 0; } HashMap<Character,Integer> pair=new HashMap<>(); int max=0,tmpLength,firstIndex=0; for(int i=0;i<s.length();i++){ char c=s.charAt(i); //如果已經(jīng)存在了,則取value(即其對應(yīng)的下標(biāo)) if(pair.containsKey(c)){ //防止因為map舊數(shù)據(jù)沒有更新,導(dǎo)致長度錯誤 firstIndex=Math.max(firstIndex,pair.get(c)+1); } pair.put(c,i); max=Math.max(max,i-firstIndex+1); } return max; }

提高代碼質(zhì)量就是:積累精美的思路,優(yōu)質(zhì)的細(xì)節(jié)的過程。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 北流市| 湄潭县| 治多县| 新宾| 泸溪县| 攀枝花市| 阿拉善盟| 前郭尔| 辽阳市| 格尔木市| 三河市| 桂东县| 二连浩特市| 和田县| 东源县| 聂拉木县| 台南市| 营山县| 聂拉木县| 台中市| 西林县| 娱乐| 丽江市| 来宾市| 凤台县| 环江| 惠来县| 西安市| 玉树县| 郁南县| 南江县| 天峻县| 栾城县| 高雄县| 仁怀市| 延寿县| 布尔津县| 汨罗市| 任丘市| 蒙自县| 钟山县|