diff --git a/docs/solutions/(array)/11-container-with-most-water.mdx b/docs/solutions/(array)/11-container-with-most-water.mdx new file mode 100644 index 0000000..0b01c2e --- /dev/null +++ b/docs/solutions/(array)/11-container-with-most-water.mdx @@ -0,0 +1,48 @@ +--- +title: '11. Container With Most Water' +description: You are given an integer array height of length n. There are n vertical lines drawn such that the two endpoints of the i^th line are (i, 0) and (i, height[i]) +sidebar: + label: 'Container With Most Water' + badge: 'Medium' +--- + +Two Pointers + +::::warning +Notice that you may not slant the container. +:::: + +### Example 1: +- Input: `height = [1,8,6,2,5,4,8,3,7]` +- Output: `49` +- Explanation: The above vertical lines are represented by array `[1,8,6,2,5,4,8,3,7]`. In this case, the max area of water (blue section) the container can contain is `49`. + +### Example 2: +- Input: `height = [1,1]` +- Output: `1` + +### Constraints: + +- `n == height.length` +- `2 <= n <= 10^5` +- `0 <= height[i] <= 10^4` + +## Solution + +```py +class Solution: + def maxArea(self, height: List[int]) -> int: # noqa: F821 + res = 0 + left = 0 + right = len(height) - 1 + + while left < right: + area = (right - left) * min(height[left], height[right]) + res = max(res, area) + if height[left] < height[right]: + left += 1 + else: + right -= 1 + + return res +``` diff --git a/docs/solutions/(two-pointers)/392-is-subsequence.mdx b/docs/solutions/(two-pointers)/392-is-subsequence.mdx new file mode 100644 index 0000000..36c8b59 --- /dev/null +++ b/docs/solutions/(two-pointers)/392-is-subsequence.mdx @@ -0,0 +1,44 @@ +--- +title: '392. Is Subsequence' +description: Given two strings s and t, return true if s is a subsequence of t, or false otherwise +sidebar: + label: 'Is Subsequence' + badge: 'Easy' +--- + +Two Pointers + +::::warning +Suppose there are lots of incoming s, say s1, s2, ..., sk where k >= 10^9, and you want to check one by one to see if t has its subsequence. In this scenario, how would you change your code? +:::: + +### Example 1: +- Input: `s = "abc", t = "ahbgdc"` +- Output: `true` + +### Example 2: +- Input: `s = "axc", t = "ahbgdc"` +- Output: `false` + +### Constraints: + +- `0 <= s.length <= 100` +- `0 <= t.length <= 10^4` +- `s` and `t` consist only of lowercase English letters. + +## Solution + +```py +class Solution: + def isSubsequence(self, s: str, t: str) -> bool: + if len(s) > len(t): + return False + + i, j = 0, 0 + while i < len(s) and j < len(t): + if s[i] == t[j]: + i += 1 + j += 1 + + return i == len(s) +```