diff --git a/0002-add-two-numbers/0002-add-two-numbers.cs b/0002-add-two-numbers/0002-add-two-numbers.cs new file mode 100644 index 0000000..7bebb4c --- /dev/null +++ b/0002-add-two-numbers/0002-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/0002-add-two-numbers/0002-add-two-numbers.java b/0002-add-two-numbers/0002-add-two-numbers.java new file mode 100644 index 0000000..ae864e0 --- /dev/null +++ b/0002-add-two-numbers/0002-add-two-numbers.java @@ -0,0 +1,36 @@ +/** + * Definition for singly-linked list. + * public class ListNode { + * int val; + * ListNode next; + * ListNode() {} + * ListNode(int val) { this.val = val; } + * ListNode(int val, ListNode next) { this.val = val; this.next = next; } + * } + */ +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/0002-add-two-numbers/0002-add-two-numbers.js b/0002-add-two-numbers/0002-add-two-numbers.js new file mode 100644 index 0000000..84505b7 --- /dev/null +++ b/0002-add-two-numbers/0002-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 diff --git a/0002-add-two-numbers/0002-add-two-numbers.php b/0002-add-two-numbers/0002-add-two-numbers.php new file mode 100644 index 0000000..f32b781 --- /dev/null +++ b/0002-add-two-numbers/0002-add-two-numbers.php @@ -0,0 +1,46 @@ +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 diff --git a/0002-add-two-numbers/0002-add-two-numbers.rb b/0002-add-two-numbers/0002-add-two-numbers.rb new file mode 100644 index 0000000..728dc52 --- /dev/null +++ b/0002-add-two-numbers/0002-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 diff --git a/0009-palindrome-number/0009-palindrome-number.js b/0009-palindrome-number/0009-palindrome-number.js new file mode 100644 index 0000000..e912e3f --- /dev/null +++ b/0009-palindrome-number/0009-palindrome-number.js @@ -0,0 +1,7 @@ +/** + * @param {number} x + * @return {boolean} + */ +var isPalindrome = function(x) { + return x.toString().split('').reverse().join('') == x; +}; \ No newline at end of file diff --git a/0009-palindrome-number/0009-palindrome-number.rb b/0009-palindrome-number/0009-palindrome-number.rb new file mode 100644 index 0000000..a9986bf --- /dev/null +++ b/0009-palindrome-number/0009-palindrome-number.rb @@ -0,0 +1,10 @@ +def is_palindrome(x) + return false if x < 0 + reverse = 0 + original = x + while x > 0 + reverse = reverse * 10 + x % 10 + x /= 10 + end + reverse == original +end \ No newline at end of file diff --git a/0011-container-with-most-water/0011-container-with-most-water.cs b/0011-container-with-most-water/0011-container-with-most-water.cs new file mode 100644 index 0000000..cadb707 --- /dev/null +++ b/0011-container-with-most-water/0011-container-with-most-water.cs @@ -0,0 +1,22 @@ +public class Solution +{ + public int MaxArea(int[] height) + { + int left = 0; + int right = height.Length - 1; + int maxArea = 0; + while (left < right) + { + maxArea = Math.Max(maxArea, Math.Min(height[left], height[right]) * (right - left)); + if (height[left] < height[right]) + { + left++; + } + else + { + right--; + } + } + return maxArea; + } +} \ No newline at end of file diff --git a/0011-container-with-most-water/0011-container-with-most-water.java b/0011-container-with-most-water/0011-container-with-most-water.java new file mode 100644 index 0000000..ccba04d --- /dev/null +++ b/0011-container-with-most-water/0011-container-with-most-water.java @@ -0,0 +1,16 @@ +class Solution { + public int maxArea(int[] height) { + int left = 0; + int right = height.length - 1; + int maxArea = 0; + while (left < right) { + maxArea = Math.max(maxArea, Math.min(height[left], height[right]) * (right - left)); + if (height[left] < height[right]) { + left++; + } else { + right--; + } + } + return maxArea; + } +} \ No newline at end of file diff --git a/0011-container-with-most-water/0011-container-with-most-water.php b/0011-container-with-most-water/0011-container-with-most-water.php new file mode 100644 index 0000000..303da51 --- /dev/null +++ b/0011-container-with-most-water/0011-container-with-most-water.php @@ -0,0 +1,25 @@ + \ No newline at end of file diff --git a/0011-container-with-most-water/0011-container-with-most-water.rb b/0011-container-with-most-water/0011-container-with-most-water.rb new file mode 100644 index 0000000..b0bcc02 --- /dev/null +++ b/0011-container-with-most-water/0011-container-with-most-water.rb @@ -0,0 +1,16 @@ +# @param {Integer[]} height +# @return {Integer} +def max_area(height) + left = 0 + right = height.length - 1 + max_area = 0 + while left < right do + max_area = [max_area, [height[left], height[right]].min * (right - left)].max + if height[left] < height[right] + left += 1 + else + right -= 1 + end + end + return max_area +end \ No newline at end of file