diff --git a/README.md b/README.md index defb91a..0a25c96 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ ![problems-solved](https://img.shields.io/badge/Problems%20Solved-542/2081-1f425f.svg) ![problems-solved-java](https://img.shields.io/badge/Java-542/2081-1abc9c.svg) ![problems-solved-python](https://img.shields.io/badge/Python-185/2081-1abc9c.svg) -![problems-solved-js](https://img.shields.io/badge/JavaScript-1/2081-1abc9c.svg) +![problems-solved-js](https://img.shields.io/badge/JavaScript-3/2081-1abc9c.svg) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md) [![cp](https://img.shields.io/badge/also%20see-Competitve%20Programming-1f72ff.svg)](https://github.com/anishLearnsToCode/competitive-programming) @@ -14,7 +14,7 @@ | # | Name | Solution | Youtube | | :--: | --------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------: | | 1 | [Two Sum](https://leetcode.com/problems/two-sum) | [![Java](assets/java.png)](src/TwoSum.java) [![Python](assets/python.png)](python/two_sum.py) | [![java-yt](assets/java-yt.png)](https://youtu.be/9wSL_7NN-A8) [![python-yt](assets/python-yt.png)](https://youtu.be/N5FXCTg0TDE) | -| 2 | [Add Two Numbers](https://leetcode.com/problems/add-two-numbers) | [![Java](assets/java.png)](src/AddTwoNumbers.java) | | +| 2 | [Add Two Numbers](https://leetcode.com/problems/add-two-numbers) | [![Java](assets/java.png)](src/AddTwoNumbers.java) [![JavaScript](assets/javascript.png)](javascript/AddTwoNumbers.js) | | | 3 | [Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest-substring-without-repeating-characters) | [![Java](assets/java.png)](src/LongestSubstringWithoutRepeatingCharacters.java) | | | 5 | [Longest Palindromic Substring](https://leetcode.com/problems/longest-palindromic-substring) | [![Java](assets/java.png)](src/LongestPalindromicSubstring.java) | | | 6 | [Zigzag Conversion](https://leetcode.com/problems/zigzag-conversion) | [![Java](assets/java.png)](src/ZigZagConversion.java) | | @@ -223,12 +223,12 @@ | 268 | [Missing Number](https://leetcode.com/problems/missing-number) | [![Java](assets/java.png)](src/MissingNumber.java) [![Python](assets/python.png)](python/missing_number.py) | | | 270 | 🔒 [Closest Binary Search Tree Value](https://leetcode.com/problems/closest-binary-search-tree-value) | | | | 271 | 🔒 [Encode and Decode Strings](https://leetcode.com/problems/encode-and-decode-strings) | | | -| 274 | [H-Index](https://leetcode.com/problems/h-index) | [![Java](assets/java.png)](src/HIndex.java) | | -| 275 | [H-Index II](https://leetcode.com/problems/h-index-ii) | [![Java](assets/java.png)](src/HIndexII.java) | | +| 274 | [H-Index](https://leetcode.com/problems/h-index) | [![Java](assets/java.png)](src/HIndex.java) | | +| 275 | [H-Index II](https://leetcode.com/problems/h-index-ii) | [![Java](assets/java.png)](src/HIndexII.java) | | | 276 | 🔒 [Paint Fence](https://leetcode.com/problems/paint-fence) | | | | 277 | 🔒 [Find The Celebrity](https://leetcode.com/problems/find-the-celebrity) | | | | 278 | [First Bad Version](https://leetcode.com/problems/first-bad-version) | [![Java](assets/java.png)](src/FirstBadVersion.java) [![Python](assets/python.png)](python/first_bad_version.py) | | -| 279 | [Perfect Squares](https://leetcode.com/problems/perfect-squares) | [![Java](assets/java.png)](src/PerfectSquares.java) | | +| 279 | [Perfect Squares](https://leetcode.com/problems/perfect-squares) | [![Java](assets/java.png)](src/PerfectSquares.java) | | | 280 | 🔒 [Wiggle Sort](https://leetcode.com/problems/wiggle-sort) | | | | 281 | 🔒 [Zigzag Iterator](https://leetcode.com/problems/zigzag-iterator) | | | | 283 | [Move Zeroes](https://leetcode.com/problems/move-zeroes) | [![Java](assets/java.png)](src/MoveZeros.java) [![Python](assets/python.png)](python/move_zeroes.py) | | @@ -503,7 +503,7 @@ | 1189 | [Maximum Number of Balloons](https://leetcode.com/problems/maximum-number-of-balloons) | [![Java](assets/java.png)](src/MaximumNumberOfBalloons.java) | | | 1196 | 🔒 [How Many Apples Can You Put into the Basket](https://leetcode.com/problems/how-many-apples-can-you-put-into-the-basket) | | | | 1200 | [Minimum Absolute Difference](https://leetcode.com/problems/minimum-absolute-difference) | [![Java](assets/java.png)](src/MinimumAbsoluteDifference.java) | | -| 1201 | [Ugly Number III](https://leetcode.com/problems/ugly-number-iii) | [![Java](assets/java.png)](src/UglyNumberIII.java) | | +| 1201 | [Ugly Number III](https://leetcode.com/problems/ugly-number-iii) | [![Java](assets/java.png)](src/UglyNumberIII.java) | | | 1207 | [Unique Number of Occurrences](https://leetcode.com/problems/unique-number-of-occurrences) | [![Java](assets/java.png)](src/UniqueNumberOfOccurrences.java) | | | 1213 | 🔒 [Intersection of Three Sorted Arrays](https://leetcode.com/problems/intersection-of-three-sorted-arrays) | | | | 1217 | [Minimum Cost to Move Chips to The Same Position](https://leetcode.com/problems/minimum-cost-to-move-chips-to-the-same-position) | [![Java](assets/java.png)](src/MinimumCostToMoveChipsToTheSamePosition.java) | | diff --git a/javascript/AddTwoNumbers.js b/javascript/AddTwoNumbers.js new file mode 100644 index 0000000..2068a40 --- /dev/null +++ b/javascript/AddTwoNumbers.js @@ -0,0 +1,39 @@ +// https://leetcode.com/problems/add-two-numbers/ +// T: O(max(|l1|, |l2|)) +// S: O(max(|l1|, |l2|)) + +const addTwoNumbers = (l1, l2) => { + let p1 = l1; + let p2 = l2; + let carry = 0; + let result_node = new ListNode(-1); + let pointer = result_node; + while (p1 || p2 || carry !== 0) { + let sum = 0; + if (p1 !== null && p2 !== null) { + sum = p1.val + p2.val; + p1 = p1.next; + p2 = p2.next; + } else if (p1 !== null) { + sum = p1.val; + p1 = p1.next; + } else if (p2 !== null) { + sum = p2.val; + p2 = p2.next; + } + + if (carry !== 0) { + sum = sum + carry; + carry = 0; + } + + if (sum > 9) { + carry = Math.floor(sum / 10); + sum = sum % 10; + } + + pointer.next = new ListNode(sum); + pointer = pointer.next; + } + return result_node.next; +};