diff --git a/2.add-two-numbers.ts b/2.add-two-numbers.ts new file mode 100644 index 0000000..82add46 --- /dev/null +++ b/2.add-two-numbers.ts @@ -0,0 +1,17 @@ +// @leet start +/** + * Definition for singly-linked list. + * class ListNode { + * val: number + * next: ListNode | null + * constructor(val?: number, next?: ListNode | null) { + * this.val = (val===undefined ? 0 : val) + * this.next = (next===undefined ? null : next) + * } + * } + */ + +function addTwoNumbers(l1: ListNode | null, l2: ListNode | null): ListNode | null { + +}; +// @leet end \ No newline at end of file diff --git a/4.median-of-two-sorted-arrays.ts b/4.median-of-two-sorted-arrays.ts new file mode 100644 index 0000000..2d60e45 --- /dev/null +++ b/4.median-of-two-sorted-arrays.ts @@ -0,0 +1,44 @@ +// @leet start +function findMedianSortedArrays(nums1: number[], nums2: number[]): number { + const merged: number[] = []; + + let aIndex = 0; + let bIndex = 0; + while (true) { + const a = nums1[aIndex]; + const b = nums2[bIndex]; + + if (a === undefined && b === undefined) { + break; + } + if (a === undefined && b !== undefined) { + merged.push(b); + bIndex++; + } + if (a !== undefined && b === undefined) { + merged.push(a); + aIndex++; + } + if (a !== undefined && b !== undefined) { + if (a <= b) { + merged.push(a); + aIndex++; + } else { + merged.push(b); + bIndex++; + } + } + } + + let median: number; + if (merged.length % 2 === 0) { + const left = Math.floor((merged.length - 1) / 2); + const right = left + 1; + median = (merged[left] + merged[right]) / 2; + } else { + median = merged[(merged.length - 1) / 2]; + } + + return median; +} +// @leet end