diff --git a/container-with-most-water/taewanseoul.ts b/container-with-most-water/taewanseoul.ts new file mode 100644 index 000000000..5c7390762 --- /dev/null +++ b/container-with-most-water/taewanseoul.ts @@ -0,0 +1,31 @@ +/** + * 11. Container With Most Water + * You are given an integer array height of length n. There are n vertical lines drawn such that the two endpoints of the ith line are (i, 0) and (i, height[i]). + * Find two lines that together with the x-axis form a container, such that the container contains the most water. + * Return the maximum amount of water a container can store. + * + * Notice that you may not slant the container. + * + * https://leetcode.com/problems/container-with-most-water/description/ + * + */ + +// O(n) time +// O(1) space +function maxArea(height: number[]): number { + let l = 0; + let r = height.length - 1; + let max = 0; + + while (l < r) { + max = Math.max(max, Math.min(height[l], height[r]) * (r - l)); + + if (height[l] < height[r]) { + l++; + } else { + r--; + } + } + + return max; +} diff --git a/valid-parentheses/taewanseoul.ts b/valid-parentheses/taewanseoul.ts new file mode 100644 index 000000000..ad8e43e6e --- /dev/null +++ b/valid-parentheses/taewanseoul.ts @@ -0,0 +1,30 @@ +/** + * 20. Valid Parentheses + * Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. + * + * An input string is valid if: + * 1. Open brackets must be closed by the same type of brackets. + * 2. Open brackets must be closed in the correct order. + * 3. Every close bracket has a corresponding open bracket of the same type. + * + * https://leetcode.com/problems/valid-parentheses/ + * + */ + +// O(n^2) time +// O(1) space +function isValid(s: string): boolean { + if (s.length % 2 === 1) return false; + + while ( + s.indexOf("()") !== -1 || + s.indexOf("{}") !== -1 || + s.indexOf("[]") !== -1 + ) { + s = s.replace("()", ""); + s = s.replace("{}", ""); + s = s.replace("[]", ""); + } + + return s === ""; +}