2023-01-04
2244. Minimum Rounds to Complete All Tasks
Topic: Array, Hash Table, Greedy, Counting
Difficulty: Medium
Problem:
You are given a 0-indexed integer array
Return the minimum rounds required to complete all the tasks, or
Example 1:
Example 2:
Constraints:
•
•
2244. Minimum Rounds to Complete All Tasks
Topic: Array, Hash Table, Greedy, Counting
Difficulty: Medium
Problem:
You are given a 0-indexed integer array
tasks, where tasks[i] represents the difficulty level of a task. In each round, you can complete either 2 or 3 tasks of the same difficulty level.Return the minimum rounds required to complete all the tasks, or
-1 if it is not possible to complete all the tasks.Example 1:
Input: tasks = [2,2,3,3,2,4,4,4,4,4]
Output: 4
Explanation: To complete all the tasks, a possible plan is:
- In the first round, you complete 3 tasks of difficulty level 2.
- In the second round, you complete 2 tasks of difficulty level 3.
- In the third round, you complete 3 tasks of difficulty level 4.
- In the fourth round, you complete 2 tasks of difficulty level 4.
It can be shown that all the tasks cannot be completed in fewer than 4 rounds, so the answer is 4.
Example 2:
Input: tasks = [2,3,3]
Output: -1
Explanation: There is only 1 task of difficulty level 2, but in each round, you can only complete either 2 or 3 tasks of the same difficulty level. Hence, you cannot complete all the tasks, and the answer is -1.
Constraints:
•
1 <= tasks.length <= 10^5•
1 <= tasks[i] <= 10^92023-01-05
452. Minimum Number of Arrows to Burst Balloons
Topic: Array, Greedy, Sorting
Difficulty: Medium
Problem:
There are some spherical balloons taped onto a flat wall that represents the XY-plane. The balloons are represented as a 2D integer array
Arrows can be shot up directly vertically (in the positive y-direction) from different points along the x-axis. A balloon with
Given the array
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
452. Minimum Number of Arrows to Burst Balloons
Topic: Array, Greedy, Sorting
Difficulty: Medium
Problem:
There are some spherical balloons taped onto a flat wall that represents the XY-plane. The balloons are represented as a 2D integer array
points where points[i] = [x_start, x_end] denotes a balloon whose horizontal diameter stretches between x_start and x_end. You do not know the exact y-coordinates of the balloons.Arrows can be shot up directly vertically (in the positive y-direction) from different points along the x-axis. A balloon with
x_start and x_end is burst by an arrow shot at x if x_start <= x <= x_end. There is no limit to the number of arrows that can be shot. A shot arrow keeps traveling up infinitely, bursting any balloons in its path.Given the array
points, return the minimum number of arrows that must be shot to burst all balloons.Example 1:
Input: points = [[10,16],[2,8],[1,6],[7,12]]
Output: 2
Explanation: The balloons can be burst by 2 arrows:
- Shoot an arrow at x = 6, bursting the balloons [2,8] and [1,6].
- Shoot an arrow at x = 11, bursting the balloons [10,16] and [7,12].
Example 2:
Input: points = [[1,2],[3,4],[5,6],[7,8]]
Output: 4
Explanation: One arrow needs to be shot for each balloon for a total of 4 arrows.
Example 3:
Input: points = [[1,2],[2,3],[3,4],[4,5]]
Output: 2
Explanation: The balloons can be burst by 2 arrows:
- Shoot an arrow at x = 2, bursting the balloons [1,2] and [2,3].
- Shoot an arrow at x = 4, bursting the balloons [3,4] and [4,5].
Constraints:
•
1 <= points.length <= 10^5•
points[i].length == 2•
-2^31 <= x_start < x_end <= 2^31 - 12023-01-06
1833. Maximum Ice Cream Bars
Topic: Array, Greedy, Sorting
Difficulty: Medium
Problem:
It is a sweltering summer day, and a boy wants to buy some ice cream bars.
At the store, there are
Return the maximum number of ice cream bars the boy can buy with
Note: The boy can buy the ice cream bars in any order.
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
•
1833. Maximum Ice Cream Bars
Topic: Array, Greedy, Sorting
Difficulty: Medium
Problem:
It is a sweltering summer day, and a boy wants to buy some ice cream bars.
At the store, there are
n ice cream bars. You are given an array costs of length n, where costs[i] is the price of the i^th ice cream bar in coins. The boy initially has coins coins to spend, and he wants to buy as many ice cream bars as possible. Return the maximum number of ice cream bars the boy can buy with
coins coins.Note: The boy can buy the ice cream bars in any order.
Example 1:
Input: costs = [1,3,2,4,1], coins = 7
Output: 4
Explanation: The boy can buy ice cream bars at indices 0,1,2,4 for a total price of 1 + 3 + 2 + 1 = 7.
Example 2:
Input: costs = [10,6,8,7,7,8], coins = 5
Output: 0
Explanation: The boy cannot afford any of the ice cream bars.
Example 3:
Input: costs = [1,6,3,1,2,5], coins = 20
Output: 6
Explanation: The boy can buy all the ice cream bars for a total price of 1 + 6 + 3 + 1 + 2 + 5 = 18.
Constraints:
•
costs.length == n•
1 <= n <= 10^5•
1 <= costs[i] <= 10^5•
1 <= coins <= 10^82023-01-07
134. Gas Station
Topic: Array, Greedy
Difficulty: Medium
Problem:
There are
You have a car with an unlimited gas tank and it costs
Given two integer arrays
Example 1:
Example 2:
Constraints:
•
•
•
134. Gas Station
Topic: Array, Greedy
Difficulty: Medium
Problem:
There are
n gas stations along a circular route, where the amount of gas at the i^th station is gas[i].You have a car with an unlimited gas tank and it costs
cost[i] of gas to travel from the i^th station to its next (i + 1)^th station. You begin the journey with an empty tank at one of the gas stations.Given two integer arrays
gas and cost, return the starting gas station's index if you can travel around the circuit once in the clockwise direction, otherwise return -1. If there exists a solution, it is guaranteed to be uniqueExample 1:
Input: gas = [1,2,3,4,5], cost = [3,4,5,1,2]
Output: 3
Explanation:
Start at station 3 (index 3) and fill up with 4 unit of gas. Your tank = 0 + 4 = 4
Travel to station 4. Your tank = 4 - 1 + 5 = 8
Travel to station 0. Your tank = 8 - 2 + 1 = 7
Travel to station 1. Your tank = 7 - 3 + 2 = 6
Travel to station 2. Your tank = 6 - 4 + 3 = 5
Travel to station 3. The cost is 5. Your gas is just enough to travel back to station 3.
Therefore, return 3 as the starting index.
Example 2:
Input: gas = [2,3,4], cost = [3,4,3]
Output: -1
Explanation:
You can't start at station 0 or 1, as there is not enough gas to travel to the next station.
Let's start at station 2 and fill up with 4 unit of gas. Your tank = 0 + 4 = 4
Travel to station 0. Your tank = 4 - 3 + 2 = 3
Travel to station 1. Your tank = 3 - 3 + 3 = 3
You cannot travel back to station 2, as it requires 4 unit of gas but you only have 3.
Therefore, you can't travel around the circuit once no matter where you start.
Constraints:
•
n == gas.length == cost.length•
1 <= n <= 10^5•
0 <= gas[i], cost[i] <= 10^42023-01-08
149. Max Points on a Line
Topic: Array, Hash Table, Math, Geometry
Difficulty: Hard
Problem:
Given an array of
Example 1:
Image: https://assets.leetcode.com/uploads/2021/02/25/plane1.jpg
Example 2:
Image: https://assets.leetcode.com/uploads/2021/02/25/plane2.jpg
Constraints:
•
•
•
• All the
149. Max Points on a Line
Topic: Array, Hash Table, Math, Geometry
Difficulty: Hard
Problem:
Given an array of
points where points[i] = [x_i, y_i] represents a point on the X-Y plane, return the maximum number of points that lie on the same straight line.Example 1:
Image: https://assets.leetcode.com/uploads/2021/02/25/plane1.jpg
Input: points = [[1,1],[2,2],[3,3]]
Output: 3
Example 2:
Image: https://assets.leetcode.com/uploads/2021/02/25/plane2.jpg
Input: points = [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4]]
Output: 4
Constraints:
•
1 <= points.length <= 300•
points[i].length == 2•
-10^4 <= x_i, y_i <= 10^4• All the
points are unique.2023-01-09
144. Binary Tree Preorder Traversal
Topic: Stack, Tree, Depth-First Search, Binary Tree
Difficulty: Easy
Problem:
Given the
Example 1:
Image: https://assets.leetcode.com/uploads/2020/09/15/inorder_1.jpg
Example 2:
Example 3:
Constraints:
• The number of nodes in the tree is in the range
•
Follow up: Recursive solution is trivial, could you do it iteratively?
144. Binary Tree Preorder Traversal
Topic: Stack, Tree, Depth-First Search, Binary Tree
Difficulty: Easy
Problem:
Given the
root of a binary tree, return the preorder traversal of its nodes' values.Example 1:
Image: https://assets.leetcode.com/uploads/2020/09/15/inorder_1.jpg
Input: root = [1,null,2,3]
Output: [1,2,3]
Example 2:
Input: root = []
Output: []
Example 3:
Input: root = [1]
Output: [1]
Constraints:
• The number of nodes in the tree is in the range
[0, 100].•
-100 <= Node.val <= 100Follow up: Recursive solution is trivial, could you do it iteratively?
2023-01-10
100. Same Tree
Topic: Tree, Depth-First Search, Breadth-First Search, Binary Tree
Difficulty: Easy
Problem:
Given the roots of two binary trees
Two binary trees are considered the same if they are structurally identical, and the nodes have the same value.
Example 1:
Image: https://assets.leetcode.com/uploads/2020/12/20/ex1.jpg
Example 2:
Image: https://assets.leetcode.com/uploads/2020/12/20/ex2.jpg
Example 3:
Image: https://assets.leetcode.com/uploads/2020/12/20/ex3.jpg
Constraints:
• The number of nodes in both trees is in the range
•
100. Same Tree
Topic: Tree, Depth-First Search, Breadth-First Search, Binary Tree
Difficulty: Easy
Problem:
Given the roots of two binary trees
p and q, write a function to check if they are the same or not.Two binary trees are considered the same if they are structurally identical, and the nodes have the same value.
Example 1:
Image: https://assets.leetcode.com/uploads/2020/12/20/ex1.jpg
Input: p = [1,2,3], q = [1,2,3]
Output: true
Example 2:
Image: https://assets.leetcode.com/uploads/2020/12/20/ex2.jpg
Input: p = [1,2], q = [1,null,2]
Output: false
Example 3:
Image: https://assets.leetcode.com/uploads/2020/12/20/ex3.jpg
Input: p = [1,2,1], q = [1,1,2]
Output: false
Constraints:
• The number of nodes in both trees is in the range
[0, 100].•
-10^4 <= Node.val <= 10^42023-01-11
1443. Minimum Time to Collect All Apples in a Tree
Topic: Hash Table, Tree, Depth-First Search, Breadth-First Search
Difficulty: Medium
Problem:
Given an undirected tree consisting of
The edges of the undirected tree are given in the array
Example 1:
Image: https://assets.leetcode.com/uploads/2020/04/23/min_time_collect_apple_1.png
Example 2:
Image: https://assets.leetcode.com/uploads/2020/04/23/min_time_collect_apple_2.png
Example 3:
Constraints:
•
•
•
•
•
•
1443. Minimum Time to Collect All Apples in a Tree
Topic: Hash Table, Tree, Depth-First Search, Breadth-First Search
Difficulty: Medium
Problem:
Given an undirected tree consisting of
n vertices numbered from 0 to n-1, which has some apples in their vertices. You spend 1 second to walk over one edge of the tree. Return the minimum time in seconds you have to spend to collect all apples in the tree, starting at vertex 0 and coming back to this vertex.The edges of the undirected tree are given in the array
edges, where edges[i] = [a_i, b_i] means that exists an edge connecting the vertices a_i and b_i. Additionally, there is a boolean array hasApple, where hasApple[i] = true means that vertex i has an apple; otherwise, it does not have any apple.Example 1:
Image: https://assets.leetcode.com/uploads/2020/04/23/min_time_collect_apple_1.png
Input: n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]], hasApple = [false,false,true,false,true,true,false]
Output: 8
Explanation: The figure above represents the given tree where red vertices have an apple. One optimal path to collect all apples is shown by the green arrows.
Example 2:
Image: https://assets.leetcode.com/uploads/2020/04/23/min_time_collect_apple_2.png
Input: n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]], hasApple = [false,false,true,false,false,true,false]
Output: 6
Explanation: The figure above represents the given tree where red vertices have an apple. One optimal path to collect all apples is shown by the green arrows.
Example 3:
Input: n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]], hasApple = [false,false,false,false,false,false,false]
Output: 0
Constraints:
•
1 <= n <= 10^5•
edges.length == n - 1•
edges[i].length == 2•
0 <= a_i < b_i <= n - 1•
from_i < to_i•
hasApple.length == n2023-01-12
1519. Number of Nodes in the Sub-Tree With the Same Label
Topic: Hash Table, Tree, Depth-First Search, Breadth-First Search, Counting
Difficulty: Medium
Problem:
You are given a tree (i.e. a connected, undirected graph that has no cycles) consisting of
The
Return an array of size
A subtree of a tree
Example 1:
Image: https://assets.leetcode.com/uploads/2020/07/01/q3e1.jpg
Example 2:
Image: https://assets.leetcode.com/uploads/2020/07/01/q3e2.jpg
Example 3:
Image: https://assets.leetcode.com/uploads/2020/07/01/q3e3.jpg
Constraints:
•
•
•
•
•
•
•
1519. Number of Nodes in the Sub-Tree With the Same Label
Topic: Hash Table, Tree, Depth-First Search, Breadth-First Search, Counting
Difficulty: Medium
Problem:
You are given a tree (i.e. a connected, undirected graph that has no cycles) consisting of
n nodes numbered from 0 to n - 1 and exactly n - 1 edges. The root of the tree is the node 0, and each node of the tree has a label which is a lower-case character given in the string labels (i.e. The node with the number i has the label labels[i]).The
edges array is given on the form edges[i] = [a_i, b_i], which means there is an edge between nodes a_i and b_i in the tree.Return an array of size
n where ans[i] is the number of nodes in the subtree of the i^th node which have the same label as node i.A subtree of a tree
T is the tree consisting of a node in T and all of its descendant nodes.Example 1:
Image: https://assets.leetcode.com/uploads/2020/07/01/q3e1.jpg
Input: n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]], labels = "abaedcd"
Output: [2,1,1,1,1,1,1]
Explanation: Node 0 has label 'a' and its sub-tree has node 2 with label 'a' as well, thus the answer is 2. Notice that any node is part of its sub-tree.
Node 1 has a label 'b'. The sub-tree of node 1 contains nodes 1,4 and 5, as nodes 4 and 5 have different labels than node 1, the answer is just 1 (the node itself).
Example 2:
Image: https://assets.leetcode.com/uploads/2020/07/01/q3e2.jpg
Input: n = 4, edges = [[0,1],[1,2],[0,3]], labels = "bbbb"
Output: [4,2,1,1]
Explanation: The sub-tree of node 2 contains only node 2, so the answer is 1.
The sub-tree of node 3 contains only node 3, so the answer is 1.
The sub-tree of node 1 contains nodes 1 and 2, both have label 'b', thus the answer is 2.
The sub-tree of node 0 contains nodes 0, 1, 2 and 3, all with label 'b', thus the answer is 4.
Example 3:
Image: https://assets.leetcode.com/uploads/2020/07/01/q3e3.jpg
Input: n = 5, edges = [[0,1],[0,2],[1,3],[0,4]], labels = "aabab"
Output: [3,2,1,1,1]
Constraints:
•
1 <= n <= 10^5•
edges.length == n - 1•
edges[i].length == 2•
0 <= a_i, b_i < n•
a_i != b_i•
labels.length == n•
labels is consisting of only of lowercase English letters.2023-01-13
2246. Longest Path With Different Adjacent Characters
Topic: Array, String, Tree, Depth-First Search, Graph, Topological Sort
Difficulty: Hard
Problem:
You are given a tree (i.e. a connected, undirected graph that has no cycles) rooted at node
You are also given a string
Return the length of the longest path in the tree such that no pair of adjacent nodes on the path have the same character assigned to them.
Example 1:
Image: https://assets.leetcode.com/uploads/2022/03/25/testingdrawio.png
Example 2:
Image: https://assets.leetcode.com/uploads/2022/03/25/graph2drawio.png
Constraints:
•
•
•
•
•
•
2246. Longest Path With Different Adjacent Characters
Topic: Array, String, Tree, Depth-First Search, Graph, Topological Sort
Difficulty: Hard
Problem:
You are given a tree (i.e. a connected, undirected graph that has no cycles) rooted at node
0 consisting of n nodes numbered from 0 to n - 1. The tree is represented by a 0-indexed array parent of size n, where parent[i] is the parent of node i. Since node 0 is the root, parent[0] == -1.You are also given a string
s of length n, where s[i] is the character assigned to node i.Return the length of the longest path in the tree such that no pair of adjacent nodes on the path have the same character assigned to them.
Example 1:
Image: https://assets.leetcode.com/uploads/2022/03/25/testingdrawio.png
Input: parent = [-1,0,0,1,1,2], s = "abacbe"
Output: 3
Explanation: The longest path where each two adjacent nodes have different characters in the tree is the path: 0 -> 1 -> 3. The length of this path is 3, so 3 is returned.
It can be proven that there is no longer path that satisfies the conditions.
Example 2:
Image: https://assets.leetcode.com/uploads/2022/03/25/graph2drawio.png
Input: parent = [-1,0,0,0], s = "aabc"
Output: 3
Explanation: The longest path where each two adjacent nodes have different characters is the path: 2 -> 0 -> 3. The length of this path is 3, so 3 is returned.
Constraints:
•
n == parent.length == s.length•
1 <= n <= 10^5•
0 <= parent[i] <= n - 1 for all i >= 1•
parent[0] == -1•
parent represents a valid tree.•
s consists of only lowercase English letters.2023-01-14
1061. Lexicographically Smallest Equivalent String
Topic: String, Union Find
Difficulty: Medium
Problem:
You are given two strings of the same length
We say
• For example, if
Equivalent characters follow the usual rules of any equivalence relation:
• Reflexivity:
• Symmetry:
• Transitivity:
For example, given the equivalency information from
Return the lexicographically smallest equivalent string of
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
1061. Lexicographically Smallest Equivalent String
Topic: String, Union Find
Difficulty: Medium
Problem:
You are given two strings of the same length
s1 and s2 and a string baseStr.We say
s1[i] and s2[i] are equivalent characters.• For example, if
s1 = "abc" and s2 = "cde", then we have 'a' == 'c', 'b' == 'd', and 'c' == 'e'.Equivalent characters follow the usual rules of any equivalence relation:
• Reflexivity:
'a' == 'a'.• Symmetry:
'a' == 'b' implies 'b' == 'a'.• Transitivity:
'a' == 'b' and 'b' == 'c' implies 'a' == 'c'.For example, given the equivalency information from
s1 = "abc" and s2 = "cde", "acd" and "aab" are equivalent strings of baseStr = "eed", and "aab" is the lexicographically smallest equivalent string of baseStr.Return the lexicographically smallest equivalent string of
baseStr by using the equivalency information from s1 and s2.Example 1:
Input: s1 = "parker", s2 = "morris", baseStr = "parser"
Output: "makkek"
Explanation: Based on the equivalency information in s1 and s2, we can group their characters as [m,p], [a,o], [k,r,s], [e,i].
The characters in each group are equivalent and sorted in lexicographical order.
So the answer is "makkek".
Example 2:
Input: s1 = "hello", s2 = "world", baseStr = "hold"
Output: "hdld"
Explanation: Based on the equivalency information in s1 and s2, we can group their characters as [h,w], [d,e,o], [l,r].
So only the second letter 'o' in baseStr is changed to 'd', the answer is "hdld".
Example 3:
Input: s1 = "leetcode", s2 = "programs", baseStr = "sourcecode"
Output: "aauaaaaada"
Explanation: We group the equivalent characters in s1 and s2 as [a,o,e,r,s,c], [l,p], [g,t] and [d,m], thus all letters in baseStr except 'u' and 'd' are transformed to 'a', the answer is "aauaaaaada".
Constraints:
•
1 <= s1.length, s2.length, baseStr <= 1000•
s1.length == s2.length•
s1, s2, and baseStr consist of lowercase English letters.2023-01-15
2421. Number of Good Paths
Topic: Array, Tree, Union Find, Graph
Difficulty: Hard
Problem:
There is a tree (i.e. a connected, undirected graph with no cycles) consisting of
You are given a 0-indexed integer array
A good path is a simple path that satisfies the following conditions:
1. The starting node and the ending node have the same value.
2. All nodes between the starting node and the ending node have values less than or equal to the starting node (i.e. the starting node's value should be the maximum value along the path).
Return the number of distinct good paths.
Note that a path and its reverse are counted as the same path. For example,
Example 1:
Image: https://assets.leetcode.com/uploads/2022/08/04/f9caaac15b383af9115c5586779dec5.png
Example 2:
Image: https://assets.leetcode.com/uploads/2022/08/04/149d3065ec165a71a1b9aec890776ff.png
Example 3:
Image: https://assets.leetcode.com/uploads/2022/08/04/31705e22af3d9c0a557459bc7d1b62d.png
Constraints:
•
•
•
•
•
•
•
•
2421. Number of Good Paths
Topic: Array, Tree, Union Find, Graph
Difficulty: Hard
Problem:
There is a tree (i.e. a connected, undirected graph with no cycles) consisting of
n nodes numbered from 0 to n - 1 and exactly n - 1 edges.You are given a 0-indexed integer array
vals of length n where vals[i] denotes the value of the i^th node. You are also given a 2D integer array edges where edges[i] = [a_i, b_i] denotes that there exists an undirected edge connecting nodes a_i and b_i.A good path is a simple path that satisfies the following conditions:
1. The starting node and the ending node have the same value.
2. All nodes between the starting node and the ending node have values less than or equal to the starting node (i.e. the starting node's value should be the maximum value along the path).
Return the number of distinct good paths.
Note that a path and its reverse are counted as the same path. For example,
0 -> 1 is considered to be the same as 1 -> 0. A single node is also considered as a valid path.Example 1:
Image: https://assets.leetcode.com/uploads/2022/08/04/f9caaac15b383af9115c5586779dec5.png
Input: vals = [1,3,2,1,3], edges = [[0,1],[0,2],[2,3],[2,4]]
Output: 6
Explanation: There are 5 good paths consisting of a single node.
There is 1 additional good path: 1 -> 0 -> 2 -> 4.
(The reverse path 4 -> 2 -> 0 -> 1 is treated as the same as 1 -> 0 -> 2 -> 4.)
Note that 0 -> 2 -> 3 is not a good path because vals[2] > vals[0].
Example 2:
Image: https://assets.leetcode.com/uploads/2022/08/04/149d3065ec165a71a1b9aec890776ff.png
Input: vals = [1,1,2,2,3], edges = [[0,1],[1,2],[2,3],[2,4]]
Output: 7
Explanation: There are 5 good paths consisting of a single node.
There are 2 additional good paths: 0 -> 1 and 2 -> 3.
Example 3:
Image: https://assets.leetcode.com/uploads/2022/08/04/31705e22af3d9c0a557459bc7d1b62d.png
Input: vals = [1], edges = []
Output: 1
Explanation: The tree consists of only one node, so there is one good path.
Constraints:
•
n == vals.length•
1 <= n <= 3 * 10^4•
0 <= vals[i] <= 10^5•
edges.length == n - 1•
edges[i].length == 2•
0 <= a_i, b_i < n•
a_i != b_i•
edges represents a valid tree.2023-01-16
57. Insert Interval
Topic: Array
Difficulty: Medium
Problem:
You are given an array of non-overlapping intervals
Insert
Return
Example 1:
Example 2:
Constraints:
•
•
•
•
•
•
57. Insert Interval
Topic: Array
Difficulty: Medium
Problem:
You are given an array of non-overlapping intervals
intervals where intervals[i] = [start_i, end_i] represent the start and the end of the i^th interval and intervals is sorted in ascending order by start_i. You are also given an interval newInterval = [start, end] that represents the start and end of another interval.Insert
newInterval into intervals such that intervals is still sorted in ascending order by start_i and intervals still does not have any overlapping intervals (merge overlapping intervals if necessary).Return
intervals after the insertion.Example 1:
Input: intervals = [[1,3],[6,9]], newInterval = [2,5]
Output: [[1,5],[6,9]]
Example 2:
Input: intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]
Output: [[1,2],[3,10],[12,16]]
Explanation: Because the new interval [4,8] overlaps with [3,5],[6,7],[8,10].
Constraints:
•
0 <= intervals.length <= 10^4•
intervals[i].length == 2•
0 <= start_i <= end_i <= 10^5•
intervals is sorted by start_i in ascending order.•
newInterval.length == 2•
0 <= start <= end <= 10^52023-01-17
926. Flip String to Monotone Increasing
Topic: String, Dynamic Programming
Difficulty: Medium
Problem:
A binary string is monotone increasing if it consists of some number of
You are given a binary string
Return the minimum number of flips to make
Example 1:
Example 2:
Example 3:
Constraints:
•
•
926. Flip String to Monotone Increasing
Topic: String, Dynamic Programming
Difficulty: Medium
Problem:
A binary string is monotone increasing if it consists of some number of
0's (possibly none), followed by some number of 1's (also possibly none).You are given a binary string
s. You can flip s[i] changing it from 0 to 1 or from 1 to 0.Return the minimum number of flips to make
s monotone increasing.Example 1:
Input: s = "00110"
Output: 1
Explanation: We flip the last digit to get 00111.
Example 2:
Input: s = "010110"
Output: 2
Explanation: We flip to get 011111, or alternatively 000111.
Example 3:
Input: s = "00011000"
Output: 2
Explanation: We flip to get 00000000.
Constraints:
•
1 <= s.length <= 10^5•
s[i] is either '0' or '1'.2023-01-18
918. Maximum Sum Circular Subarray
Topic: Array, Divide and Conquer, Dynamic Programming, Queue, Monotonic Queue
Difficulty: Medium
Problem:
Given a circular integer array
A circular array means the end of the array connects to the beginning of the array. Formally, the next element of
A subarray may only include each element of the fixed buffer
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
918. Maximum Sum Circular Subarray
Topic: Array, Divide and Conquer, Dynamic Programming, Queue, Monotonic Queue
Difficulty: Medium
Problem:
Given a circular integer array
nums of length n, return the maximum possible sum of a non-empty subarray of nums.A circular array means the end of the array connects to the beginning of the array. Formally, the next element of
nums[i] is nums[(i + 1) % n] and the previous element of nums[i] is nums[(i - 1 + n) % n].A subarray may only include each element of the fixed buffer
nums at most once. Formally, for a subarray nums[i], nums[i + 1], ..., nums[j], there does not exist i <= k1, k2 <= j with k1 % n == k2 % n.Example 1:
Input: nums = [1,-2,3,-2]
Output: 3
Explanation: Subarray [3] has maximum sum 3.
Example 2:
Input: nums = [5,-3,5]
Output: 10
Explanation: Subarray [5,5] has maximum sum 5 + 5 = 10.
Example 3:
Input: nums = [-3,-2,-3]
Output: -2
Explanation: Subarray [-2] has maximum sum -2.
Constraints:
•
n == nums.length•
1 <= n <= 3 * 10^4•
-3 * 10^4 <= nums[i] <= 3 * 10^42023-01-19
974. Subarray Sums Divisible by K
Topic: Array, Hash Table, Prefix Sum
Difficulty: Medium
Problem:
Given an integer array
A subarray is a contiguous part of an array.
Example 1:
Example 2:
Constraints:
•
•
•
974. Subarray Sums Divisible by K
Topic: Array, Hash Table, Prefix Sum
Difficulty: Medium
Problem:
Given an integer array
nums and an integer k, return the number of non-empty subarrays that have a sum divisible by k.A subarray is a contiguous part of an array.
Example 1:
Input: nums = [4,5,0,-2,-3,1], k = 5
Output: 7
Explanation: There are 7 subarrays with a sum divisible by k = 5:
[4, 5, 0, -2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], [-2, -3]
Example 2:
Input: nums = [5], k = 9
Output: 0
Constraints:
•
1 <= nums.length <= 3 * 10^4•
-10^4 <= nums[i] <= 10^4•
2 <= k <= 10^42023-01-20
491. Non-decreasing Subsequences
Topic: Array, Hash Table, Backtracking, Bit Manipulation
Difficulty: Medium
Problem:
Given an integer array
Example 1:
Example 2:
Constraints:
•
•
491. Non-decreasing Subsequences
Topic: Array, Hash Table, Backtracking, Bit Manipulation
Difficulty: Medium
Problem:
Given an integer array
nums, return all the different possible non-decreasing subsequences of the given array with at least two elements. You may return the answer in any order.Example 1:
Input: nums = [4,6,7,7]
Output: [[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7],[6,7,7],[7,7]]
Example 2:
Input: nums = [4,4,3,2,1]
Output: [[4,4]]
Constraints:
•
1 <= nums.length <= 15•
-100 <= nums[i] <= 1002023-01-21
93. Restore IP Addresses
Topic: String, Backtracking
Difficulty: Medium
Problem:
A valid IP address consists of exactly four integers separated by single dots. Each integer is between
• For example,
Given a string
Example 1:
Example 2:
Example 3:
Constraints:
•
•
93. Restore IP Addresses
Topic: String, Backtracking
Difficulty: Medium
Problem:
A valid IP address consists of exactly four integers separated by single dots. Each integer is between
0 and 255 (inclusive) and cannot have leading zeros.• For example,
"0.1.2.201" and "192.168.1.1" are valid IP addresses, but "0.011.255.245", "192.168.1.312" and "192.168@1.1" are invalid IP addresses.Given a string
s containing only digits, return all possible valid IP addresses that can be formed by inserting dots into s. You are not allowed to reorder or remove any digits in s. You may return the valid IP addresses in any order.Example 1:
Input: s = "25525511135"
Output: ["255.255.11.135","255.255.111.35"]
Example 2:
Input: s = "0000"
Output: ["0.0.0.0"]
Example 3:
Input: s = "101023"
Output: ["1.0.10.23","1.0.102.3","10.1.0.23","10.10.2.3","101.0.2.3"]
Constraints:
•
1 <= s.length <= 20•
s consists of digits only.2023-01-22
131. Palindrome Partitioning
Topic: String, Dynamic Programming, Backtracking
Difficulty: Medium
Problem:
Given a string
Example 1:
Example 2:
Constraints:
•
•
131. Palindrome Partitioning
Topic: String, Dynamic Programming, Backtracking
Difficulty: Medium
Problem:
Given a string
s, partition s such that every substring of the partition is a palindrome. Return all possible palindrome partitioning of s.Example 1:
Input: s = "aab"
Output: [["a","a","b"],["aa","b"]]
Example 2:
Input: s = "a"
Output: [["a"]]
Constraints:
•
1 <= s.length <= 16•
s contains only lowercase English letters.2023-01-23
997. Find the Town Judge
Topic: Array, Hash Table, Graph
Difficulty: Easy
Problem:
In a town, there are
If the town judge exists, then:
1. The town judge trusts nobody.
2. Everybody (except for the town judge) trusts the town judge.
3. There is exactly one person that satisfies properties 1 and 2.
You are given an array
Return the label of the town judge if the town judge exists and can be identified, or return
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
• All the pairs of
•
•
997. Find the Town Judge
Topic: Array, Hash Table, Graph
Difficulty: Easy
Problem:
In a town, there are
n people labeled from 1 to n. There is a rumor that one of these people is secretly the town judge.If the town judge exists, then:
1. The town judge trusts nobody.
2. Everybody (except for the town judge) trusts the town judge.
3. There is exactly one person that satisfies properties 1 and 2.
You are given an array
trust where trust[i] = [a_i, b_i] representing that the person labeled a_i trusts the person labeled b_i.Return the label of the town judge if the town judge exists and can be identified, or return
-1 otherwise.Example 1:
Input: n = 2, trust = [[1,2]]
Output: 2
Example 2:
Input: n = 3, trust = [[1,3],[2,3]]
Output: 3
Example 3:
Input: n = 3, trust = [[1,3],[2,3],[3,1]]
Output: -1
Constraints:
•
1 <= n <= 1000•
0 <= trust.length <= 10^4•
trust[i].length == 2• All the pairs of
trust are unique.•
a_i != b_i•
1 <= a_i, b_i <= n