본문 바로가기

알고리즘/LeetCode32

[Leetcode][Javascript][Medium] 718. Maximum Length of Repeated Subarray /** * https://leetcode.com/problems/maximum-length-of-repeated-subarray/ * https://leetcode.com/explore/challenge/card/july-leetcoding-challenge-2021/609/week-2-july-8th-july-14th/3807/ * @param {number[]} nums1 * @param {number[]} nums2 * @return {number} */ var findLength = function(nums1, nums2) { var maxLength = 0; while (nums1.length > 0) { for (let i=0; i= nums2.length || j >= nums1.length.. 2021. 7. 9.
[Leetcode][Javascript][Easy] 202. Happy Number /** * https://leetcode.com/problems/happy-number/ * @param {number} n * @return {boolean} */ var isHappy = function(n) { var memoize = {}; var happy = n; while (happy !== 1) { var tmp = happy; happy = sumOfSquares(happy); if (memoize[tmp] === undefined) { memoize[tmp] = happy; } else { break; } } if (happy === 1) { return true; } return false; }; function sumOfSquares(n) { return n.toString().sp.. 2021. 7. 8.
[Leetcode][Javascript][Easy] 136. Single Number /** * https://leetcode.com/problems/single-number/ * @param {number[]} nums * @return {number} */ var singleNumber = function(nums) { var answer = nums[nums.length-1]; for (let i = 0; i < nums.length - 1 ; i++) { if (nums.indexOf(nums[i], i+1) === -1 && nums.indexOf(nums[i]) === i) { answer = nums[i]; break; } } return answer; }; 2021. 7. 7.
[Leetcode][Javascript][Easy] 70. Climbing Stairs /** * https://leetcode.com/problems/climbing-stairs/ * @param {number} n * @return {number} */ var climbStairs = function(n) { return getSteps(n); }; var memoize = {0: 1, 1: 1, 2: 2, 3: 3}; var getSteps = function(n) { if (memoize[n]) { return memoize[n]; } else if (n < 0) { return 0; } else { var a = getSteps(n-1); var b = getSteps(n-2); if (!memoize[n-1]) { memoize[n-1] = a; } if (!memoize[n-2.. 2021. 7. 6.
[Leetcode][Javascript][Easy] 169. Majority Element /** * https://leetcode.com/problems/majority-element/ * @param {number[]} nums * @return {number} */ var majorityElement = function(nums) { var hashTable = {}, answer; if (nums.length === 1) { return nums[0]; } for (let i = 0; i (nums.length/2)) { answer =.. 2021. 7. 6.
[Leetcode][Javascript][Easy] 21. Merge Two Sorted Lists /** * https://leetcode.com/problems/merge-two-sorted-lists/ * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } */ /** * @param {ListNode} l1 * @param {ListNode} l2 * @return {ListNode} */ var mergeTwoLists = function(l1, l2) { var node = new ListNode(); var firstNode = node; if (l1 === .. 2021. 7. 6.
[Leetcode][Javascript][Medium] 107. Binary Tree Level Order Traversal II /** * https://leetcode.com/problems/binary-tree-level-order-traversal-ii/ * Binary Tree Level Order Traversal II - LeetCode * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null : right) * } */ /** * @param {TreeNode} root * @return {number[][]} .. 2021. 7. 5.
[Leetcode][Javascript][Medium] 102. Binary Tree Level Order Traversal /** * https://leetcode.com/problems/binary-tree-level-order-traversal/ * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null : right) * } */ /** * @param {TreeNode} root * @return {number[][]} */ var levelOrder = function(root) { var bt = new Bin.. 2021. 7. 5.
[Leetcode][Javascript][Easy] 145. Binary Tree Postorder Traversal /** * https://leetcode.com/problems/binary-tree-postorder-traversal/ * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null : right) * } */ /** * @param {TreeNode} root * @return {number[]} */ var postorderTraversal = function(root) { var bt = new.. 2021. 7. 5.
[Leetcode][Javascript][Easy] 94. Binary Tree Inorder Traversal /** * https://leetcode.com/problems/binary-tree-inorder-traversal/ * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null : right) * } */ /** * @param {TreeNode} root * @return {number[]} */ var inorderTraversal = function(root) { var bt = new Bin.. 2021. 7. 5.
[Leetcode][Javascript][Easy] 144. Binary Tree Preorder Traversal /** * https://leetcode.com/problems/binary-tree-preorder-traversal/ * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null : right) * } */ /** * @param {TreeNode} root * @return {number[]} */ var preorderTraversal = function(root) { var bt = new B.. 2021. 7. 5.
[Leetcode][Javascript][Easy] 14. Longest Common Prefix https://leetcode.com/problems/longest-common-prefix/ /** * @param {string[]} strs * @return {string} */ var longestCommonPrefix = function(strs) { return strs.reduce((result, str) => { result = compareStr(result, str); return result; }, strs[0]); }; function compareStr(str1, str2) { const minLength = Math.min(str1.length, str2.length); let idx = minLength; for (let i = 0; i < minLength; i++) { i.. 2021. 7. 5.