From f546345c9a59295ec4327014c32fae3c2d654a8e Mon Sep 17 00:00:00 2001 From: Shalaahuddien Daffa <77540526+Shalaahuddien@users.noreply.github.com> Date: Sun, 5 Feb 2023 19:43:45 +0700 Subject: [PATCH 01/11] two-sum.cs --- 1-two-sum/1-two-sum.cs | 14 ++++++++++++++ 1-two-sum/1-two-sum.js | 0 1-two-sum/1-two-sum.php | 0 1-two-sum/1-two-sum.py | 0 1-two-sum/1-two-sum.rb | 0 5 files changed, 14 insertions(+) create mode 100644 1-two-sum/1-two-sum.cs create mode 100644 1-two-sum/1-two-sum.js create mode 100644 1-two-sum/1-two-sum.php create mode 100644 1-two-sum/1-two-sum.py create mode 100644 1-two-sum/1-two-sum.rb diff --git a/1-two-sum/1-two-sum.cs b/1-two-sum/1-two-sum.cs new file mode 100644 index 0000000..f10906e --- /dev/null +++ b/1-two-sum/1-two-sum.cs @@ -0,0 +1,14 @@ +public class Solution { + public int[] TwoSum(int[] nums, int target) { + Dictionary map = new Dictionary(); + for (int i = 0; i < nums.Length; i++) { + int complement = target - nums[i]; + if (map.ContainsKey(complement)) { + return new int[] { map[complement], i }; + } + map[nums[i]] = i; + } + throw new Exception("No two sum solution"); +} + +} \ No newline at end of file diff --git a/1-two-sum/1-two-sum.js b/1-two-sum/1-two-sum.js new file mode 100644 index 0000000..e69de29 diff --git a/1-two-sum/1-two-sum.php b/1-two-sum/1-two-sum.php new file mode 100644 index 0000000..e69de29 diff --git a/1-two-sum/1-two-sum.py b/1-two-sum/1-two-sum.py new file mode 100644 index 0000000..e69de29 diff --git a/1-two-sum/1-two-sum.rb b/1-two-sum/1-two-sum.rb new file mode 100644 index 0000000..e69de29 From 15ab7de77c47c914549743bc18521835e9353254 Mon Sep 17 00:00:00 2001 From: Shalaahuddien Daffa <77540526+Shalaahuddien@users.noreply.github.com> Date: Sun, 5 Feb 2023 19:44:28 +0700 Subject: [PATCH 02/11] two-sum.js --- 1-two-sum/1-two-sum.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/1-two-sum/1-two-sum.js b/1-two-sum/1-two-sum.js index e69de29..c8eba31 100644 --- a/1-two-sum/1-two-sum.js +++ b/1-two-sum/1-two-sum.js @@ -0,0 +1,15 @@ +const twoSum = function (nums, target) +{ + //search of all Array + for (let i = 0; i < nums.length; i++) + { + for (let j = i + 1; j < nums.length; j++) + { + // if (nums[j] === target - nums[i]) + if(nums[i] + nums[j] === target) + { + return [i, j]; + } + } + } + }; \ No newline at end of file From 6c004ce24be1a1aee838ca07f0f55ce74d7e1cf6 Mon Sep 17 00:00:00 2001 From: Shalaahuddien Daffa <77540526+Shalaahuddien@users.noreply.github.com> Date: Sun, 5 Feb 2023 19:45:19 +0700 Subject: [PATCH 03/11] two-sum.php --- 1-two-sum/1-two-sum.php | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/1-two-sum/1-two-sum.php b/1-two-sum/1-two-sum.php index e69de29..c83a060 100644 --- a/1-two-sum/1-two-sum.php +++ b/1-two-sum/1-two-sum.php @@ -0,0 +1,25 @@ + \ No newline at end of file From d8cd3ad22c5db472dc0c55177e122e34e34b0d41 Mon Sep 17 00:00:00 2001 From: Shalaahuddien Daffa <77540526+Shalaahuddien@users.noreply.github.com> Date: Sun, 5 Feb 2023 19:45:59 +0700 Subject: [PATCH 04/11] two-sum.py --- 1-two-sum/1-two-sum.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/1-two-sum/1-two-sum.py b/1-two-sum/1-two-sum.py index e69de29..4ea9c0f 100644 --- a/1-two-sum/1-two-sum.py +++ b/1-two-sum/1-two-sum.py @@ -0,0 +1,8 @@ +class Solution: + def twoSum(self, nums: List[int], target: int) -> List[int]: + d = {} + for i, num in enumerate(nums): + if target - num in d: + return [d[target - num], i] + d[num] = i + return [] \ No newline at end of file From 77c8141630c2371e924b4374f5414f60f8bbeb3a Mon Sep 17 00:00:00 2001 From: Shalaahuddien Daffa <77540526+Shalaahuddien@users.noreply.github.com> Date: Sun, 5 Feb 2023 19:46:42 +0700 Subject: [PATCH 05/11] two-sum.rb --- 1-two-sum/1-two-sum.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/1-two-sum/1-two-sum.rb b/1-two-sum/1-two-sum.rb index e69de29..b9c59e8 100644 --- a/1-two-sum/1-two-sum.rb +++ b/1-two-sum/1-two-sum.rb @@ -0,0 +1,8 @@ +def two_sum(nums, target) + hash = {} + nums.each_with_index do |num, idx| + complement = target - num + return [hash[complement], idx] if hash.key?(complement) + hash[num] = idx + end +end \ No newline at end of file From 38a07d8dd663308553c5a5ff116d9abd9987bcf7 Mon Sep 17 00:00:00 2001 From: Shalaahuddien Daffa <77540526+Shalaahuddien@users.noreply.github.com> Date: Sun, 5 Feb 2023 19:55:44 +0700 Subject: [PATCH 06/11] add-two-numbers.cs --- 2-add-two-numbers/2-add-two-numbers.cs | 34 +++++++++++++++++++++++++ 2-add-two-numbers/2-add-two-numbers.js | 0 2-add-two-numbers/2-add-two-numbers.php | 0 2-add-two-numbers/2-add-two-numbers.py | 0 2-add-two-numbers/2-add-two-numbers.rb | 0 5 files changed, 34 insertions(+) create mode 100644 2-add-two-numbers/2-add-two-numbers.cs create mode 100644 2-add-two-numbers/2-add-two-numbers.js create mode 100644 2-add-two-numbers/2-add-two-numbers.php create mode 100644 2-add-two-numbers/2-add-two-numbers.py create mode 100644 2-add-two-numbers/2-add-two-numbers.rb diff --git a/2-add-two-numbers/2-add-two-numbers.cs b/2-add-two-numbers/2-add-two-numbers.cs new file mode 100644 index 0000000..7bebb4c --- /dev/null +++ b/2-add-two-numbers/2-add-two-numbers.cs @@ -0,0 +1,34 @@ +/** + * Definition for singly-linked list. + * public class ListNode { + * public int val; + * public ListNode next; + * public ListNode(int x) { val = x; } + * } + */ +public class Solution { + public ListNode AddTwoNumbers(ListNode l1, ListNode l2) { + ListNode dummy = new ListNode(0); + ListNode current = dummy; + int carry = 0; + + while (l1 != null || l2 != null || carry != 0) { + int sum = carry; + if (l1 != null) { + sum += l1.val; + l1 = l1.next; + } + if (l2 != null) { + sum += l2.val; + l2 = l2.next; + } + + carry = sum / 10; + sum = sum % 10; + current.next = new ListNode(sum); + current = current.next; + } + + return dummy.next; + } +} \ No newline at end of file diff --git a/2-add-two-numbers/2-add-two-numbers.js b/2-add-two-numbers/2-add-two-numbers.js new file mode 100644 index 0000000..e69de29 diff --git a/2-add-two-numbers/2-add-two-numbers.php b/2-add-two-numbers/2-add-two-numbers.php new file mode 100644 index 0000000..e69de29 diff --git a/2-add-two-numbers/2-add-two-numbers.py b/2-add-two-numbers/2-add-two-numbers.py new file mode 100644 index 0000000..e69de29 diff --git a/2-add-two-numbers/2-add-two-numbers.rb b/2-add-two-numbers/2-add-two-numbers.rb new file mode 100644 index 0000000..e69de29 From e09a9e2960818a7600ef7fbbc0dd138f6e2df4ec Mon Sep 17 00:00:00 2001 From: Shalaahuddien Daffa <77540526+Shalaahuddien@users.noreply.github.com> Date: Sun, 5 Feb 2023 19:56:28 +0700 Subject: [PATCH 07/11] add-two-numbers.js --- 2-add-two-numbers/2-add-two-numbers.js | 36 ++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/2-add-two-numbers/2-add-two-numbers.js b/2-add-two-numbers/2-add-two-numbers.js index e69de29..84505b7 100644 --- a/2-add-two-numbers/2-add-two-numbers.js +++ b/2-add-two-numbers/2-add-two-numbers.js @@ -0,0 +1,36 @@ +/** + * 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 addTwoNumbers = function(l1, l2) { + let dummy = new ListNode(0); + let current = dummy; + let carry = 0; + + while (l1 !== null || l2 !== null || carry !== 0) { + let sum = carry; + if (l1 !== null) { + sum += l1.val; + l1 = l1.next; + } + if (l2 !== null) { + sum += l2.val; + l2 = l2.next; + } + + carry = Math.floor(sum / 10); + sum = sum % 10; + current.next = new ListNode(sum); + current = current.next; + } + + return dummy.next; +}; \ No newline at end of file From 9dd219fadc37cd62077d94c9171f64d0e1c2635f Mon Sep 17 00:00:00 2001 From: Shalaahuddien Daffa <77540526+Shalaahuddien@users.noreply.github.com> Date: Sun, 5 Feb 2023 19:57:24 +0700 Subject: [PATCH 08/11] add-two-numbers.php --- 2-add-two-numbers/2-add-two-numbers.php | 48 +++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/2-add-two-numbers/2-add-two-numbers.php b/2-add-two-numbers/2-add-two-numbers.php index e69de29..9d4520d 100644 --- a/2-add-two-numbers/2-add-two-numbers.php +++ b/2-add-two-numbers/2-add-two-numbers.php @@ -0,0 +1,48 @@ +val = $val; + * $this->next = $next; + * } + * } + */ +class Solution { + /** + * @param ListNode $l1 + * @param ListNode $l2 + * @return ListNode + */ + function addTwoNumbers($l1, $l2) { + $dummy = new ListNode(0); + $current = $dummy; + $carry = 0; + + while ($l1 !== null || $l2 !== null || $carry !== 0) { + $sum = $carry; + if ($l1 !== null) { + $sum += $l1->val; + $l1 = $l1->next; + } + if ($l2 !== null) { + $sum += $l2->val; + $l2 = $l2->next; + } + + $carry = intdiv($sum, 10); + $sum = $sum % 10; + $current->next = new ListNode($sum); + $current = $current->next; + } + + return $dummy->next; + } +} + + +?> \ No newline at end of file From fbd78a98c164036e42d64bf1fcf1c57289242b8e Mon Sep 17 00:00:00 2001 From: Shalaahuddien Daffa <77540526+Shalaahuddien@users.noreply.github.com> Date: Sun, 5 Feb 2023 19:58:12 +0700 Subject: [PATCH 09/11] add-two-number.py --- 2-add-two-numbers/2-add-two-numbers.py | 27 ++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/2-add-two-numbers/2-add-two-numbers.py b/2-add-two-numbers/2-add-two-numbers.py index e69de29..70e7d5d 100644 --- a/2-add-two-numbers/2-add-two-numbers.py +++ b/2-add-two-numbers/2-add-two-numbers.py @@ -0,0 +1,27 @@ +# Definition for singly-linked list. +class ListNode: + def __init__(self, val=0, next=None): + self.val = val + self.next = next + +class Solution: + def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode: + dummy = ListNode(0) + current = dummy + carry = 0 + + while l1 or l2 or carry: + sum = carry + if l1: + sum += l1.val + l1 = l1.next + if l2: + sum += l2.val + l2 = l2.next + + carry = sum // 10 + sum = sum % 10 + current.next = ListNode(sum) + current = current.next + + return dummy.next \ No newline at end of file From 05c25bc92569f48bacd694e8b6ad66ab3a67c62e Mon Sep 17 00:00:00 2001 From: Shalaahuddien Daffa <77540526+Shalaahuddien@users.noreply.github.com> Date: Sun, 5 Feb 2023 19:58:55 +0700 Subject: [PATCH 10/11] add-two-numbers.rb --- 2-add-two-numbers/2-add-two-numbers.rb | 36 ++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/2-add-two-numbers/2-add-two-numbers.rb b/2-add-two-numbers/2-add-two-numbers.rb index e69de29..728dc52 100644 --- a/2-add-two-numbers/2-add-two-numbers.rb +++ b/2-add-two-numbers/2-add-two-numbers.rb @@ -0,0 +1,36 @@ +# Definition for singly-linked list. +# class ListNode +# attr_accessor :val, :next +# def initialize(val = 0, _next = nil) +# @val = val +# @next = _next +# end +# end + +# @param {ListNode} l1 +# @param {ListNode} l2 +# @return {ListNode} +def add_two_numbers(l1, l2) + dummy = ListNode.new(0) + current = dummy + carry = 0 + + while l1 || l2 || carry != 0 + sum = carry + if l1 + sum += l1.val + l1 = l1.next + end + if l2 + sum += l2.val + l2 = l2.next + end + + carry = sum / 10 + sum = sum % 10 + current.next = ListNode.new(sum) + current = current.next + end + + dummy.next +end \ No newline at end of file From 227b3f9cf4a168777ab9d800498b953e42f5e194 Mon Sep 17 00:00:00 2001 From: Shalaahuddien Daffa <77540526+Shalaahuddien@users.noreply.github.com> Date: Sun, 5 Feb 2023 20:01:55 +0700 Subject: [PATCH 11/11] Solution.php --- ...substring-without-repeating-characters.php | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 3-longest-substring-without-repeating-characters/3-longest-substring-without-repeating-characters.php diff --git a/3-longest-substring-without-repeating-characters/3-longest-substring-without-repeating-characters.php b/3-longest-substring-without-repeating-characters/3-longest-substring-without-repeating-characters.php new file mode 100644 index 0000000..a7380e6 --- /dev/null +++ b/3-longest-substring-without-repeating-characters/3-longest-substring-without-repeating-characters.php @@ -0,0 +1,30 @@ + \ No newline at end of file