尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

豆包 LeetCode 3 无重复字符的最长子串 JavaScript实现

豆包    LeetCode 3 无重复字符的最长子串 JavaScript实现 LeetCode 3 无重复字符的最长子串 JavaScript函数签名/**- param {string} s- return {number}*/滑动窗口数组记录字符最近下标时间 O(n)javascript/*** param {string} s* return {number}*/var lengthOfLongestSubstring function(s) {const lastPos new Array(128).fill(-1);let left 0;let maxLen 0;for (let idx 0; idx s.length; idx) {const c s.charCodeAt(idx);if (lastPos[c] left) {left lastPos[c] 1;}lastPos[c] idx;maxLen Math.max(maxLen, idx - left 1);}return maxLen;};HashMap版本支持任意Unicode字符javascript/*** param {string} s* return {number}*/var lengthOfLongestSubstring function(s) {const map new Map();let left 0;let maxLen 0;for (let i 0; i s.length; i) {const ch s[i];if(map.has(ch) map.get(ch) left){left map.get(ch) 1;}map.set(ch, i);maxLen Math.max(maxLen, i - left 1);}return maxLen;};测试用例javascriptconsole.log(lengthOfLongestSubstring(abcabcbb)); //3console.log(lengthOfLongestSubstring(bbbbb)); //1console.log(lengthOfLongestSubstring(pwwkew)); //3console.log(lengthOfLongestSubstring()); //0- 时间复杂度O(n)左右指针只向前移动- 空间数组版 O(1)Map版 O(min(m,n))m字符集大小需要TS版本吗
返回列表