国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 晋宁县| 德州市| 康保县| 大化| 阳东县| 兴山县| 宜昌市| 新民市| 华容县| 固阳县| 明光市| 大渡口区| 沙田区| 黄龙县| 筠连县| 商丘市| 休宁县| 宣恩县| 六安市| 鄂州市| 金昌市| 两当县| 西和县| 蛟河市| 高青县| 洪雅县| 白银市| 宁德市| 青州市| 阿城市| 太湖县| 乐亭县| 子长县| 武城县| 山东| 腾冲县| 米泉市| 兴和县| 静海县| 阳新县| 邻水|