diff --git a/longest-substring-without-repeating-characters/moonjonghoo.js b/longest-substring-without-repeating-characters/moonjonghoo.js new file mode 100644 index 000000000..c777da2a4 --- /dev/null +++ b/longest-substring-without-repeating-characters/moonjonghoo.js @@ -0,0 +1,20 @@ +/** + * @param {string} s + * @return {number} + */ +const lengthOfLongestSubstring = function (s) { + let longest = 0; + let start = 0; + const seen = {}; + + for (let i = 0; i < s.length; i++) { + const char = s[i]; + if (seen[char] >= start) { + start = seen[char] + 1; + } + seen[char] = i; + longest = Math.max(longest, i - start + 1); + } + + return longest; +}; diff --git a/number-of-islands/moonjonghoo.js b/number-of-islands/moonjonghoo.js new file mode 100644 index 000000000..e69de29bb diff --git a/reverse-linked-list/moonjonghoo.js b/reverse-linked-list/moonjonghoo.js new file mode 100644 index 000000000..452a032e0 --- /dev/null +++ b/reverse-linked-list/moonjonghoo.js @@ -0,0 +1,13 @@ +var reverseList = function (head) { + let prev = null; + let current = head; + + while (current !== null) { + let nextTemp = current.next; // 1. 다음 노드 기억해둠 + current.next = prev; // 2. 포인터 방향 뒤집기 + prev = current; // 3. prev 이동 + current = nextTemp; // 4. current 이동 + } + + return prev; // prev가 새로운 head +};