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

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

Longest Substring Without Repeating Characters

2019-11-14 09:46:07
字體:
供稿:網(wǎng)友

這里寫圖片描述

題目要求我們得出不含重復(fù)元素子串的最大長度。 解題思路: 一開始使用暴力破解法(兩遍for循環(huán)),結(jié)果直接TimeLimit .后面查看官方答案,感到柳暗花明。

代碼解釋: 首先,定義了一個256大小的int數(shù)組map,用于對應(yīng)于256位ASCII碼,接下來,在for循環(huán)中用了一個while語句,j從0開始依次往后漸增,當(dāng)s.charAt[j]是第一次出現(xiàn),便將map[s.charAt(j)]賦值1(一開始map[]數(shù)組初始化為0),當(dāng)?shù)诙纬霈F(xiàn)前面的元素時while語句的map[s.charAt(j)]==0條件不再滿足,此時while語句跳出執(zhí)行下一次for循環(huán)語句,便把之前的 map[s.charAt(i)] = 0。如果,之前的引起while語句跳出的因素仍未消除j將繼續(xù)卡在原來的那一步,并重復(fù)上述操作。最后得到答案。

參考答案:

public int lengthOfLongestSubstring(String s) { int[] map = new int[256]; // map from character's ASCII to its last occured index int j = 0; int i = 0; int ans = 0; for (i = 0; i < s.length(); i++) { while (j < s.length() && map[s.charAt(j)]==0) { map[s.charAt(j)] = 1; ans = Math.max(ans, j-i + 1); j ++; } map[s.charAt(i)] = 0; //釋放元素,達(dá)到解除j卡死因素的目的 } return ans;
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 广德县| 平湖市| 平阴县| 沙湾县| 万宁市| 晋宁县| 上饶市| 石家庄市| 洛川县| 青川县| 乐清市| 高尔夫| 朔州市| 嘉定区| 广安市| 海原县| 彭阳县| 加查县| 桓仁| 玉树县| 平陆县| SHOW| 呼和浩特市| 双鸭山市| 洪湖市| 获嘉县| 崇明县| 贵定县| 安福县| 文化| 清丰县| 两当县| 湖口县| 横山县| 青冈县| 克什克腾旗| 中方县| 龙游县| 靖边县| 长岭县| 巴马|