2022-05-06
1209. Remove All Adjacent Duplicates in String II
Topic: String, Stack
Difficulty: Medium
Problem:
You are given a string
We repeatedly make
Return the final string after all such duplicate removals have been made. It is guaranteed that the answer is unique.
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
1209. Remove All Adjacent Duplicates in String II
Topic: String, Stack
Difficulty: Medium
Problem:
You are given a string
s and an integer k, a k duplicate removal consists of choosing k adjacent and equal letters from s and removing them, causing the left and the right side of the deleted substring to concatenate together.We repeatedly make
k duplicate removals on s until we no longer can.Return the final string after all such duplicate removals have been made. It is guaranteed that the answer is unique.
Example 1:
Input: s = "abcd", k = 2
Output: "abcd"
Explanation: There's nothing to delete.
Example 2:
Input: s = "deeedbbcccbdaa", k = 3
Output: "aa"
Explanation:
First delete "eee" and "ccc", get "ddbbbdaa"
Then delete "bbb", get "dddaa"
Finally delete "ddd", get "aa"
Example 3:
Input: s = "pbbcggttciiippooaais", k = 2
Output: "ps"
Constraints:
•
1 <= s.length <= 10^5•
2 <= k <= 10^4•
s only contains lower case English letters.2022-05-07
456. 132 Pattern
Topic: Array, Binary Search, Stack, Monotonic Stack, Ordered Set
Difficulty: Medium
Problem:
Given an array of
Return
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
456. 132 Pattern
Topic: Array, Binary Search, Stack, Monotonic Stack, Ordered Set
Difficulty: Medium
Problem:
Given an array of
n integers nums, a 132 pattern is a subsequence of three integers nums[i], nums[j] and nums[k] such that i < j < k and nums[i] < nums[k] < nums[j].Return
true if there is a 132 pattern in nums, otherwise, return false.Example 1:
Input: nums = [1,2,3,4]
Output: false
Explanation: There is no 132 pattern in the sequence.
Example 2:
Input: nums = [3,1,4,2]
Output: true
Explanation: There is a 132 pattern in the sequence: [1, 4, 2].
Example 3:
Input: nums = [-1,3,2,0]
Output: true
Explanation: There are three 132 patterns in the sequence: [-1, 3, 2], [-1, 3, 0] and [-1, 2, 0].
Constraints:
•
n == nums.length•
1 <= n <= 2 * 10^5•
-10^9 <= nums[i] <= 10^92022-05-08
341. Flatten Nested List Iterator
Topic: Stack, Tree, Depth-First Search, Design, Queue, Iterator
Difficulty: Medium
Problem:
You are given a nested list of integers
Implement the
•
•
•
Your code will be tested with the following pseudocode:
If
Example 1:
Example 2:
Constraints:
•
• The values of the integers in the nested list is in the range
341. Flatten Nested List Iterator
Topic: Stack, Tree, Depth-First Search, Design, Queue, Iterator
Difficulty: Medium
Problem:
You are given a nested list of integers
nestedList. Each element is either an integer or a list whose elements may also be integers or other lists. Implement an iterator to flatten it.Implement the
NestedIterator class:•
NestedIterator(List<NestedInteger> nestedList) Initializes the iterator with the nested list nestedList.•
int next() Returns the next integer in the nested list.•
boolean hasNext() Returns true if there are still some integers in the nested list and false otherwise.Your code will be tested with the following pseudocode:
initialize iterator with nestedList
res = []
while iterator.hasNext()
append iterator.next() to the end of res
return res
If
res matches the expected flattened list, then your code will be judged as correct.Example 1:
Input: nestedList = [[1,1],2,[1,1]]
Output: [1,1,2,1,1]
Explanation: By calling next repeatedly until hasNext returns false, the order of elements returned by next should be: [1,1,2,1,1].
Example 2:
Input: nestedList = [1,[4,[6]]]
Output: [1,4,6]
Explanation: By calling next repeatedly until hasNext returns false, the order of elements returned by next should be: [1,4,6].
Constraints:
•
1 <= nestedList.length <= 500• The values of the integers in the nested list is in the range
[-10^6, 10^6].2022-05-09
17. Letter Combinations of a Phone Number
Topic: Hash Table, String, Backtracking
Difficulty: Medium
Problem:
Given a string containing digits from
A mapping of digit to letters (just like on the telephone buttons) is given below. Note that 1 does not map to any letters.
Image: https://upload.wikimedia.org/wikipedia/commons/thumb/7/73/Telephone-keypad2.svg/200px-Telephone-keypad2.svg.png
Example 1:
Example 2:
Example 3:
Constraints:
•
•
17. Letter Combinations of a Phone Number
Topic: Hash Table, String, Backtracking
Difficulty: Medium
Problem:
Given a string containing digits from
2-9 inclusive, return all possible letter combinations that the number could represent. Return the answer in any order.A mapping of digit to letters (just like on the telephone buttons) is given below. Note that 1 does not map to any letters.
Image: https://upload.wikimedia.org/wikipedia/commons/thumb/7/73/Telephone-keypad2.svg/200px-Telephone-keypad2.svg.png
Example 1:
Input: digits = "23"
Output: ["ad","ae","af","bd","be","bf","cd","ce","cf"]
Example 2:
Input: digits = ""
Output: []
Example 3:
Input: digits = "2"
Output: ["a","b","c"]
Constraints:
•
0 <= digits.length <= 4•
digits[i] is a digit in the range ['2', '9'].2022-05-10
216. Combination Sum III
Topic: Array, Backtracking
Difficulty: Medium
Problem:
Find all valid combinations of
• Only numbers
• Each number is used at most once.
Return a list of all possible valid combinations. The list must not contain the same combination twice, and the combinations may be returned in any order.
Example 1:
Example 2:
Example 3:
Constraints:
•
•
216. Combination Sum III
Topic: Array, Backtracking
Difficulty: Medium
Problem:
Find all valid combinations of
k numbers that sum up to n such that the following conditions are true:• Only numbers
1 through 9 are used.• Each number is used at most once.
Return a list of all possible valid combinations. The list must not contain the same combination twice, and the combinations may be returned in any order.
Example 1:
Input: k = 3, n = 7
Output: [[1,2,4]]
Explanation:
1 + 2 + 4 = 7
There are no other valid combinations.
Example 2:
Input: k = 3, n = 9
Output: [[1,2,6],[1,3,5],[2,3,4]]
Explanation:
1 + 2 + 6 = 9
1 + 3 + 5 = 9
2 + 3 + 4 = 9
There are no other valid combinations.
Example 3:
Input: k = 4, n = 1
Output: []
Explanation: There are no valid combinations.
Using 4 different numbers in the range [1,9], the smallest sum we can get is 1+2+3+4 = 10 and since 10 > 1, there are no valid combination.
Constraints:
•
2 <= k <= 9•
1 <= n <= 602022-05-11
1641. Count Sorted Vowel Strings
Topic: Dynamic Programming
Difficulty: Medium
Problem:
Given an integer
A string
Example 1:
Example 2:
Example 3:
Constraints:
•
1641. Count Sorted Vowel Strings
Topic: Dynamic Programming
Difficulty: Medium
Problem:
Given an integer
n, return the number of strings of length n that consist only of vowels (a, e, i, o, u) and are lexicographically sorted.A string
s is lexicographically sorted if for all valid i, s[i] is the same as or comes before s[i+1] in the alphabet.Example 1:
Input: n = 1
Output: 5
Explanation: The 5 sorted strings that consist of vowels only are ["a","e","i","o","u"].
Example 2:
Input: n = 2
Output: 15
Explanation: The 15 sorted strings that consist of vowels only are
["aa","ae","ai","ao","au","ee","ei","eo","eu","ii","io","iu","oo","ou","uu"].
Note that "ea" is not a valid string since 'e' comes after 'a' in the alphabet.
Example 3:
Input: n = 33
Output: 66045
Constraints:
•
1 <= n <= 502022-05-12
47. Permutations II
Topic: Array, Backtracking
Difficulty: Medium
Problem:
Given a collection of numbers,
Example 1:
Example 2:
Constraints:
•
•
47. Permutations II
Topic: Array, Backtracking
Difficulty: Medium
Problem:
Given a collection of numbers,
nums, that might contain duplicates, return all possible unique permutations in any order.Example 1:
Input: nums = [1,1,2]
Output:
[[1,1,2],
[1,2,1],
[2,1,1]]
Example 2:
Input: nums = [1,2,3]
Output: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
Constraints:
•
1 <= nums.length <= 8•
-10 <= nums[i] <= 102022-05-13
117. Populating Next Right Pointers in Each Node II
Topic: Linked List, Tree, Depth-First Search, Breadth-First Search, Binary Tree
Difficulty: Medium
Problem:
Given a binary tree
Populate each next pointer to point to its next right node. If there is no next right node, the next pointer should be set to
Initially, all next pointers are set to
Example 1:
Image: https://assets.leetcode.com/uploads/2019/02/15/117_sample.png
Example 2:
Constraints:
• The number of nodes in the tree is in the range
•
Follow-up:
• You may only use constant extra space.
• The recursive approach is fine. You may assume implicit stack space does not count as extra space for this problem.
117. Populating Next Right Pointers in Each Node II
Topic: Linked List, Tree, Depth-First Search, Breadth-First Search, Binary Tree
Difficulty: Medium
Problem:
Given a binary tree
struct Node {
int val;
Node *left;
Node *right;
Node *next;
}
Populate each next pointer to point to its next right node. If there is no next right node, the next pointer should be set to
NULL.Initially, all next pointers are set to
NULL.Example 1:
Image: https://assets.leetcode.com/uploads/2019/02/15/117_sample.png
Input: root = [1,2,3,4,5,null,7]
Output: [1,#,2,3,#,4,5,7,#]
Explanation: Given the above binary tree (Figure A), your function should populate each next pointer to point to its next right node, just like in Figure B. The serialized output is in level order as connected by the next pointers, with '#' signifying the end of each level.
Example 2:
Input: root = []
Output: []
Constraints:
• The number of nodes in the tree is in the range
[0, 6000].•
-100 <= Node.val <= 100Follow-up:
• You may only use constant extra space.
• The recursive approach is fine. You may assume implicit stack space does not count as extra space for this problem.
2022-05-14
743. Network Delay Time
Topic: Depth-First Search, Breadth-First Search, Graph, Heap (Priority Queue), Shortest Path
Difficulty: Medium
Problem:
You are given a network of
We will send a signal from a given node
Example 1:
Image: https://assets.leetcode.com/uploads/2019/05/23/931_example_1.png
Example 2:
Example 3:
Constraints:
•
•
•
•
•
•
• All the pairs
743. Network Delay Time
Topic: Depth-First Search, Breadth-First Search, Graph, Heap (Priority Queue), Shortest Path
Difficulty: Medium
Problem:
You are given a network of
n nodes, labeled from 1 to n. You are also given times, a list of travel times as directed edges times[i] = (u_i, v_i, w_i), where u_i is the source node, v_i is the target node, and w_i is the time it takes for a signal to travel from source to target.We will send a signal from a given node
k. Return the time it takes for all the n nodes to receive the signal. If it is impossible for all the n nodes to receive the signal, return -1.Example 1:
Image: https://assets.leetcode.com/uploads/2019/05/23/931_example_1.png
Input: times = [[2,1,1],[2,3,1],[3,4,1]], n = 4, k = 2
Output: 2
Example 2:
Input: times = [[1,2,1]], n = 2, k = 1
Output: 1
Example 3:
Input: times = [[1,2,1]], n = 2, k = 2
Output: -1
Constraints:
•
1 <= k <= n <= 100•
1 <= times.length <= 6000•
times[i].length == 3•
1 <= u_i, v_i <= n•
u_i != v_i•
0 <= w_i <= 100• All the pairs
(u_i, v_i) are unique. (i.e., no multiple edges.)2022-05-15
1302. Deepest Leaves Sum
Topic: Tree, Depth-First Search, Breadth-First Search, Binary Tree
Difficulty: Medium
Problem:
Given the
Example 1:
Image: https://assets.leetcode.com/uploads/2019/07/31/1483_ex1.png
Example 2:
Constraints:
• The number of nodes in the tree is in the range
•
1302. Deepest Leaves Sum
Topic: Tree, Depth-First Search, Breadth-First Search, Binary Tree
Difficulty: Medium
Problem:
Given the
root of a binary tree, return the sum of values of its deepest leaves.Example 1:
Image: https://assets.leetcode.com/uploads/2019/07/31/1483_ex1.png
Input: root = [1,2,3,4,5,null,6,7,null,null,null,null,8]
Output: 15
Example 2:
Input: root = [6,7,8,2,7,1,3,9,null,1,4,null,null,null,5]
Output: 19
Constraints:
• The number of nodes in the tree is in the range
[1, 10^4].•
1 <= Node.val <= 1002022-05-16
1091. Shortest Path in Binary Matrix
Topic: Array, Breadth-First Search, Matrix
Difficulty: Medium
Problem:
Given an
A clear path in a binary matrix is a path from the top-left cell (i.e.,
• All the visited cells of the path are
• All the adjacent cells of the path are 8-directionally connected (i.e., they are different and they share an edge or a corner).
The length of a clear path is the number of visited cells of this path.
Example 1:
Image: https://assets.leetcode.com/uploads/2021/02/18/example1_1.png
Example 2:
Image: https://assets.leetcode.com/uploads/2021/02/18/example2_1.png
Example 3:
Constraints:
•
•
•
•
1091. Shortest Path in Binary Matrix
Topic: Array, Breadth-First Search, Matrix
Difficulty: Medium
Problem:
Given an
n x n binary matrix grid, return the length of the shortest clear path in the matrix. If there is no clear path, return -1.A clear path in a binary matrix is a path from the top-left cell (i.e.,
(0, 0)) to the bottom-right cell (i.e., (n - 1, n - 1)) such that:• All the visited cells of the path are
0.• All the adjacent cells of the path are 8-directionally connected (i.e., they are different and they share an edge or a corner).
The length of a clear path is the number of visited cells of this path.
Example 1:
Image: https://assets.leetcode.com/uploads/2021/02/18/example1_1.png
Input: grid = [[0,1],[1,0]]
Output: 2
Example 2:
Image: https://assets.leetcode.com/uploads/2021/02/18/example2_1.png
Input: grid = [[0,0,0],[1,1,0],[1,1,0]]
Output: 4
Example 3:
Input: grid = [[1,0,0],[1,1,0],[1,1,0]]
Output: -1
Constraints:
•
n == grid.length•
n == grid[i].length•
1 <= n <= 100•
grid[i][j] is 0 or 12022-05-17
1379. Find a Corresponding Node of a Binary Tree in a Clone of That Tree
Topic: Tree, Depth-First Search, Breadth-First Search, Binary Tree
Difficulty: Medium
Problem:
Given two binary trees
The
Return a reference to the same node in the
Note that you are not allowed to change any of the two trees or the
Example 1:
Image: https://assets.leetcode.com/uploads/2020/02/21/e1.png
Example 2:
Image: https://assets.leetcode.com/uploads/2020/02/21/e2.png
Example 3:
Image: https://assets.leetcode.com/uploads/2020/02/21/e3.png
Constraints:
• The number of nodes in the
• The values of the nodes of the
•
Follow up: Could you solve the problem if repeated values on the tree are allowed?
1379. Find a Corresponding Node of a Binary Tree in a Clone of That Tree
Topic: Tree, Depth-First Search, Breadth-First Search, Binary Tree
Difficulty: Medium
Problem:
Given two binary trees
original and cloned and given a reference to a node target in the original tree.The
cloned tree is a copy of the original tree.Return a reference to the same node in the
cloned tree.Note that you are not allowed to change any of the two trees or the
target node and the answer must be a reference to a node in the cloned tree.Example 1:
Image: https://assets.leetcode.com/uploads/2020/02/21/e1.png
Input: tree = [7,4,3,null,null,6,19], target = 3
Output: 3
Explanation: In all examples the original and cloned trees are shown. The target node is a green node from the original tree. The answer is the yellow node from the cloned tree.
Example 2:
Image: https://assets.leetcode.com/uploads/2020/02/21/e2.png
Input: tree = [7], target = 7
Output: 7
Example 3:
Image: https://assets.leetcode.com/uploads/2020/02/21/e3.png
Input: tree = [8,null,6,null,5,null,4,null,3,null,2,null,1], target = 4
Output: 4
Constraints:
• The number of nodes in the
tree is in the range [1, 10^4].• The values of the nodes of the
tree are unique.•
target node is a node from the original tree and is not null.Follow up: Could you solve the problem if repeated values on the tree are allowed?
2022-05-18
1192. Critical Connections in a Network
Topic: Depth-First Search, Graph, Biconnected Component
Difficulty: Hard
Problem:
There are
A critical connection is a connection that, if removed, will make some servers unable to reach some other server.
Return all critical connections in the network in any order.
Example 1:
Image: https://assets.leetcode.com/uploads/2019/09/03/1537_ex1_2.png
Example 2:
Constraints:
•
•
•
•
• There are no repeated connections.
1192. Critical Connections in a Network
Topic: Depth-First Search, Graph, Biconnected Component
Difficulty: Hard
Problem:
There are
n servers numbered from 0 to n - 1 connected by undirected server-to-server connections forming a network where connections[i] = [a_i, b_i] represents a connection between servers a_i and b_i. Any server can reach other servers directly or indirectly through the network.A critical connection is a connection that, if removed, will make some servers unable to reach some other server.
Return all critical connections in the network in any order.
Example 1:
Image: https://assets.leetcode.com/uploads/2019/09/03/1537_ex1_2.png
Input: n = 4, connections = [[0,1],[1,2],[2,0],[1,3]]
Output: [[1,3]]
Explanation: [[3,1]] is also accepted.
Example 2:
Input: n = 2, connections = [[0,1]]
Output: [[0,1]]
Constraints:
•
2 <= n <= 10^5•
n - 1 <= connections.length <= 10^5•
0 <= a_i, b_i <= n - 1•
a_i != b_i• There are no repeated connections.
2022-05-19
329. Longest Increasing Path in a Matrix
Topic: Dynamic Programming, Depth-First Search, Breadth-First Search, Graph, Topological Sort, Memoization
Difficulty: Hard
Problem:
Given an
From each cell, you can either move in four directions: left, right, up, or down. You may not move diagonally or move outside the boundary (i.e., wrap-around is not allowed).
Example 1:
Image: https://assets.leetcode.com/uploads/2021/01/05/grid1.jpg
Example 2:
Image: https://assets.leetcode.com/uploads/2021/01/27/tmp-grid.jpg
Example 3:
Constraints:
•
•
•
•
329. Longest Increasing Path in a Matrix
Topic: Dynamic Programming, Depth-First Search, Breadth-First Search, Graph, Topological Sort, Memoization
Difficulty: Hard
Problem:
Given an
m x n integers matrix, return the length of the longest increasing path in matrix.From each cell, you can either move in four directions: left, right, up, or down. You may not move diagonally or move outside the boundary (i.e., wrap-around is not allowed).
Example 1:
Image: https://assets.leetcode.com/uploads/2021/01/05/grid1.jpg
Input: matrix = [[9,9,4],[6,6,8],[2,1,1]]
Output: 4
Explanation: The longest increasing path is [1, 2, 6, 9].
Example 2:
Image: https://assets.leetcode.com/uploads/2021/01/27/tmp-grid.jpg
Input: matrix = [[3,4,5],[3,2,6],[2,2,1]]
Output: 4
Explanation: The longest increasing path is [3, 4, 5, 6]. Moving diagonally is not allowed.
Example 3:
Input: matrix = [[1]]
Output: 1
Constraints:
•
m == matrix.length•
n == matrix[i].length•
1 <= m, n <= 200•
0 <= matrix[i][j] <= 2^31 - 12022-05-20
63. Unique Paths II
Topic: Array, Dynamic Programming, Matrix
Difficulty: Medium
Problem:
You are given an
An obstacle and space are marked as
Return the number of possible unique paths that the robot can take to reach the bottom-right corner.
The testcases are generated so that the answer will be less than or equal to
Example 1:
Image: https://assets.leetcode.com/uploads/2020/11/04/robot1.jpg
Example 2:
Image: https://assets.leetcode.com/uploads/2020/11/04/robot2.jpg
Constraints:
•
•
•
•
63. Unique Paths II
Topic: Array, Dynamic Programming, Matrix
Difficulty: Medium
Problem:
You are given an
m x n integer array grid. There is a robot initially located at the top-left corner (i.e., grid[0][0]). The robot tries to move to the bottom-right corner (i.e., grid[m-1][n-1]). The robot can only move either down or right at any point in time.An obstacle and space are marked as
1 or 0 respectively in grid. A path that the robot takes cannot include any square that is an obstacle.Return the number of possible unique paths that the robot can take to reach the bottom-right corner.
The testcases are generated so that the answer will be less than or equal to
2 * 10^9.Example 1:
Image: https://assets.leetcode.com/uploads/2020/11/04/robot1.jpg
Input: obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]
Output: 2
Explanation: There is one obstacle in the middle of the 3x3 grid above.
There are two ways to reach the bottom-right corner:
1. Right -> Right -> Down -> Down
2. Down -> Down -> Right -> Right
Example 2:
Image: https://assets.leetcode.com/uploads/2020/11/04/robot2.jpg
Input: obstacleGrid = [[0,1],[0,0]]
Output: 1
Constraints:
•
m == obstacleGrid.length•
n == obstacleGrid[i].length•
1 <= m, n <= 100•
obstacleGrid[i][j] is 0 or 1.2022-05-21
322. Coin Change
Topic: Array, Dynamic Programming, Breadth-First Search
Difficulty: Medium
Problem:
You are given an integer array
Return the fewest number of coins that you need to make up that amount. If that amount of money cannot be made up by any combination of the coins, return
You may assume that you have an infinite number of each kind of coin.
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
322. Coin Change
Topic: Array, Dynamic Programming, Breadth-First Search
Difficulty: Medium
Problem:
You are given an integer array
coins representing coins of different denominations and an integer amount representing a total amount of money.Return the fewest number of coins that you need to make up that amount. If that amount of money cannot be made up by any combination of the coins, return
-1.You may assume that you have an infinite number of each kind of coin.
Example 1:
Input: coins = [1,2,5], amount = 11
Output: 3
Explanation: 11 = 5 + 5 + 1
Example 2:
Input: coins = [2], amount = 3
Output: -1
Example 3:
Input: coins = [1], amount = 0
Output: 0
Constraints:
•
1 <= coins.length <= 12•
1 <= coins[i] <= 2^31 - 1•
0 <= amount <= 10^42022-05-22
647. Palindromic Substrings
Topic: String, Dynamic Programming
Difficulty: Medium
Problem:
Given a string
A string is a palindrome when it reads the same backward as forward.
A substring is a contiguous sequence of characters within the string.
Example 1:
Example 2:
Constraints:
•
•
647. Palindromic Substrings
Topic: String, Dynamic Programming
Difficulty: Medium
Problem:
Given a string
s, return the number of palindromic substrings in it.A string is a palindrome when it reads the same backward as forward.
A substring is a contiguous sequence of characters within the string.
Example 1:
Input: s = "abc"
Output: 3
Explanation: Three palindromic strings: "a", "b", "c".
Example 2:
Input: s = "aaa"
Output: 6
Explanation: Six palindromic strings: "a", "a", "a", "aa", "aa", "aaa".
Constraints:
•
1 <= s.length <= 1000•
s consists of lowercase English letters.2022-05-23
474. Ones and Zeroes
Topic: Array, String, Dynamic Programming
Difficulty: Medium
Problem:
You are given an array of binary strings
Return the size of the largest subset of
A set
Example 1:
Example 2:
Constraints:
•
•
•
•
474. Ones and Zeroes
Topic: Array, String, Dynamic Programming
Difficulty: Medium
Problem:
You are given an array of binary strings
strs and two integers m and n.Return the size of the largest subset of
strs such that there are at most m 0's and n 1's in the subset.A set
x is a subset of a set y if all elements of x are also elements of y.Example 1:
Input: strs = ["10","0001","111001","1","0"], m = 5, n = 3
Output: 4
Explanation: The largest subset with at most 5 0's and 3 1's is {"10", "0001", "1", "0"}, so the answer is 4.
Other valid but smaller subsets include {"0001", "1"} and {"10", "1", "0"}.
{"111001"} is an invalid subset because it contains 4 1's, greater than the maximum of 3.
Example 2:
Input: strs = ["10","0","1"], m = 1, n = 1
Output: 2
Explanation: The largest subset is {"0", "1"}, so the answer is 2.
Constraints:
•
1 <= strs.length <= 600•
1 <= strs[i].length <= 100•
strs[i] consists only of digits '0' and '1'.•
1 <= m, n <= 1002022-05-24
32. Longest Valid Parentheses
Topic: String, Dynamic Programming, Stack
Difficulty: Hard
Problem:
Given a string containing just the characters
Example 1:
Example 2:
Example 3:
Constraints:
•
•
32. Longest Valid Parentheses
Topic: String, Dynamic Programming, Stack
Difficulty: Hard
Problem:
Given a string containing just the characters
'(' and ')', find the length of the longest valid (well-formed) parentheses substring.Example 1:
Input: s = "(()"
Output: 2
Explanation: The longest valid parentheses substring is "()".
Example 2:
Input: s = ")()())"
Output: 4
Explanation: The longest valid parentheses substring is "()()".
Example 3:
Input: s = ""
Output: 0
Constraints:
•
0 <= s.length <= 3 * 10^4•
s[i] is '(', or ')'.2022-05-25
354. Russian Doll Envelopes
Topic: Array, Binary Search, Dynamic Programming, Sorting
Difficulty: Hard
Problem:
You are given a 2D array of integers
One envelope can fit into another if and only if both the width and height of one envelope are greater than the other envelope's width and height.
Return the maximum number of envelopes you can Russian doll (i.e., put one inside the other).
Note: You cannot rotate an envelope.
Example 1:
Example 2:
Constraints:
•
•
•
354. Russian Doll Envelopes
Topic: Array, Binary Search, Dynamic Programming, Sorting
Difficulty: Hard
Problem:
You are given a 2D array of integers
envelopes where envelopes[i] = [w_i, h_i] represents the width and the height of an envelope.One envelope can fit into another if and only if both the width and height of one envelope are greater than the other envelope's width and height.
Return the maximum number of envelopes you can Russian doll (i.e., put one inside the other).
Note: You cannot rotate an envelope.
Example 1:
Input: envelopes = [[5,4],[6,4],[6,7],[2,3]]
Output: 3
Explanation: The maximum number of envelopes you can Russian doll is 3 ([2,3] => [5,4] => [6,7]).
Example 2:
Input: envelopes = [[1,1],[1,1],[1,1]]
Output: 1
Constraints:
•
1 <= envelopes.length <= 10^5•
envelopes[i].length == 2•
1 <= w_i, h_i <= 10^52022-05-26
191. Number of 1 Bits
Topic: Bit Manipulation
Difficulty: Easy
Problem:
Write a function that takes an unsigned integer and returns the number of '1' bits it has (also known as the Hamming weight).
Note:
• Note that in some languages, such as Java, there is no unsigned integer type. In this case, the input will be given as a signed integer type. It should not affect your implementation, as the integer's internal binary representation is the same, whether it is signed or unsigned.
• In Java, the compiler represents the signed integers using 2's complement notation. Therefore, in Example 3, the input represents the signed integer.
Example 1:
Example 2:
Example 3:
Constraints:
• The input must be a binary string of length
Follow up: If this function is called many times, how would you optimize it?
191. Number of 1 Bits
Topic: Bit Manipulation
Difficulty: Easy
Problem:
Write a function that takes an unsigned integer and returns the number of '1' bits it has (also known as the Hamming weight).
Note:
• Note that in some languages, such as Java, there is no unsigned integer type. In this case, the input will be given as a signed integer type. It should not affect your implementation, as the integer's internal binary representation is the same, whether it is signed or unsigned.
• In Java, the compiler represents the signed integers using 2's complement notation. Therefore, in Example 3, the input represents the signed integer.
-3.Example 1:
Input: n = 00000000000000000000000000001011
Output: 3
Explanation: The input binary string 00000000000000000000000000001011 has a total of three '1' bits.
Example 2:
Input: n = 00000000000000000000000010000000
Output: 1
Explanation: The input binary string 00000000000000000000000010000000 has a total of one '1' bit.
Example 3:
Input: n = 11111111111111111111111111111101
Output: 31
Explanation: The input binary string 11111111111111111111111111111101 has a total of thirty one '1' bits.
Constraints:
• The input must be a binary string of length
32.Follow up: If this function is called many times, how would you optimize it?