2025-01-30
2493. Divide Nodes Into the Maximum Number of Groups
Topic: Breadth-First Search, Union Find, Graph
Difficulty: Hard
Problem:
You are given a positive integer
You are also given a 2D integer array
Divide the nodes of the graph into
• Each node in the graph belongs to exactly one group.
• For every pair of nodes in the graph that are connected by an edge
Return the maximum number of groups (i.e., maximum
Example 1:
Image: https://assets.leetcode.com/uploads/2022/10/13/example1.png
Example 2:
Constraints:
•
•
•
•
•
• There is at most one edge between any pair of vertices.
2493. Divide Nodes Into the Maximum Number of Groups
Topic: Breadth-First Search, Union Find, Graph
Difficulty: Hard
Problem:
You are given a positive integer
n representing the number of nodes in an undirected graph. The nodes are labeled from 1 to n.You are also given a 2D integer array
edges, where edges[i] = [a_i, b_i] indicates that there is a bidirectional edge between nodes a_i and b_i. Notice that the given graph may be disconnected.Divide the nodes of the graph into
m groups (1-indexed) such that:• Each node in the graph belongs to exactly one group.
• For every pair of nodes in the graph that are connected by an edge
[a_i, b_i], if a_i belongs to the group with index x, and b_i belongs to the group with index y, then |y - x| = 1.Return the maximum number of groups (i.e., maximum
m) into which you can divide the nodes. Return -1 if it is impossible to group the nodes with the given conditions.Example 1:
Image: https://assets.leetcode.com/uploads/2022/10/13/example1.png
Input: n = 6, edges = [[1,2],[1,4],[1,5],[2,6],[2,3],[4,6]]
Output: 4
Explanation: As shown in the image we:
- Add node 5 to the first group.
- Add node 1 to the second group.
- Add nodes 2 and 4 to the third group.
- Add nodes 3 and 6 to the fourth group.
We can see that every edge is satisfied.
It can be shown that that if we create a fifth group and move any node from the third or fourth group to it, at least on of the edges will not be satisfied.
Example 2:
Input: n = 3, edges = [[1,2],[2,3],[3,1]]
Output: -1
Explanation: If we add node 1 to the first group, node 2 to the second group, and node 3 to the third group to satisfy the first two edges, we can see that the third edge will not be satisfied.
It can be shown that no grouping is possible.
Constraints:
•
1 <= n <= 500•
1 <= edges.length <= 10^4•
edges[i].length == 2•
1 <= a_i, b_i <= n•
a_i != b_i• There is at most one edge between any pair of vertices.
2025-01-31
827. Making A Large Island
Topic: Array, Depth-First Search, Breadth-First Search, Union Find, Matrix
Difficulty: Hard
Problem:
You are given an
Return the size of the largest island in
An island is a 4-directionally connected group of
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
•
827. Making A Large Island
Topic: Array, Depth-First Search, Breadth-First Search, Union Find, Matrix
Difficulty: Hard
Problem:
You are given an
n x n binary matrix grid. You are allowed to change at most one 0 to be 1.Return the size of the largest island in
grid after applying this operation.An island is a 4-directionally connected group of
1s.Example 1:
Input: grid = [[1,0],[0,1]]
Output: 3
Explanation: Change one 0 to 1 and connect two 1s, then we get an island with area = 3.
Example 2:
Input: grid = [[1,1],[1,0]]
Output: 4
Explanation: Change the 0 to 1 and make the island bigger, only one island with area = 4.
Example 3:
Input: grid = [[1,1],[1,1]]
Output: 4
Explanation: Can't change any 0 to 1, only one island with area = 4.
Constraints:
•
n == grid.length•
n == grid[i].length•
1 <= n <= 500•
grid[i][j] is either 0 or 1.2025-02-01
3151. Special Array I
Topic: Array
Difficulty: Easy
Problem:
An array is considered special if every pair of its adjacent elements contains two numbers with different parity.
You are given an array of integers
Example 1:
Input: nums = 1
Output: true
Explanation:
There is only one element. So the answer is
Example 2:
Input: nums = 2,1,4
Output: true
Explanation:
There is only two pairs:
Example 3:
Input: nums = 4,3,1,6
Output: false
Explanation:
Constraints:
•
•
3151. Special Array I
Topic: Array
Difficulty: Easy
Problem:
An array is considered special if every pair of its adjacent elements contains two numbers with different parity.
You are given an array of integers
nums. Return true if nums is a special array, otherwise, return false.Example 1:
Input: nums = 1
Output: true
Explanation:
There is only one element. So the answer is
true.Example 2:
Input: nums = 2,1,4
Output: true
Explanation:
There is only two pairs:
(2,1) and (1,4), and both of them contain numbers with different parity. So the answer is true.Example 3:
Input: nums = 4,3,1,6
Output: false
Explanation:
nums[1] and nums[2] are both odd. So the answer is false.Constraints:
•
1 <= nums.length <= 100•
1 <= nums[i] <= 1002025-02-02
1752. Check if Array Is Sorted and Rotated
Topic: Array
Difficulty: Easy
Problem:
Given an array
There may be duplicates in the original array.
Note: An array
Example 1:
Example 2:
Example 3:
Constraints:
•
•
1752. Check if Array Is Sorted and Rotated
Topic: Array
Difficulty: Easy
Problem:
Given an array
nums, return true if the array was originally sorted in non-decreasing order, then rotated some number of positions (including zero). Otherwise, return false.There may be duplicates in the original array.
Note: An array
A rotated by x positions results in an array B of the same length such that A[i] == B[(i+x) % A.length], where % is the modulo operation.Example 1:
Input: nums = [3,4,5,1,2]
Output: true
Explanation: [1,2,3,4,5] is the original sorted array.
You can rotate the array by x = 3 positions to begin on the the element of value 3: [3,4,5,1,2].
Example 2:
Input: nums = [2,1,3,4]
Output: false
Explanation: There is no sorted array once rotated that can make nums.
Example 3:
Input: nums = [1,2,3]
Output: true
Explanation: [1,2,3] is the original sorted array.
You can rotate the array by x = 0 positions (i.e. no rotation) to make nums.
Constraints:
•
1 <= nums.length <= 100•
1 <= nums[i] <= 1002025-02-03
3105. Longest Strictly Increasing or Strictly Decreasing Subarray
Topic: Array
Difficulty: Easy
Problem:
You are given an array of integers
Example 1:
Input: nums = 1,4,3,3,2
Output: 2
Explanation:
The strictly increasing subarrays of
The strictly decreasing subarrays of
Hence, we return
Example 2:
Input: nums = 3,3,3,3
Output: 1
Explanation:
The strictly increasing subarrays of
The strictly decreasing subarrays of
Hence, we return
Example 3:
Input: nums = 3,2,1
Output: 3
Explanation:
The strictly increasing subarrays of
The strictly decreasing subarrays of
Hence, we return
Constraints:
•
•
3105. Longest Strictly Increasing or Strictly Decreasing Subarray
Topic: Array
Difficulty: Easy
Problem:
You are given an array of integers
nums. Return the length of the longest subarray of nums which is either strictly increasing or strictly decreasing.Example 1:
Input: nums = 1,4,3,3,2
Output: 2
Explanation:
The strictly increasing subarrays of
nums are [1], [2], [3], [3], [4], and [1,4].The strictly decreasing subarrays of
nums are [1], [2], [3], [3], [4], [3,2], and [4,3].Hence, we return
2.Example 2:
Input: nums = 3,3,3,3
Output: 1
Explanation:
The strictly increasing subarrays of
nums are [3], [3], [3], and [3].The strictly decreasing subarrays of
nums are [3], [3], [3], and [3].Hence, we return
1.Example 3:
Input: nums = 3,2,1
Output: 3
Explanation:
The strictly increasing subarrays of
nums are [3], [2], and [1].The strictly decreasing subarrays of
nums are [3], [2], [1], [3,2], [2,1], and [3,2,1].Hence, we return
3.Constraints:
•
1 <= nums.length <= 50•
1 <= nums[i] <= 502025-02-04
1800. Maximum Ascending Subarray Sum
Topic: Array
Difficulty: Easy
Problem:
Given an array of positive integers
A subarray is defined as a contiguous sequence of numbers in an array.
A subarray
Example 1:
Example 2:
Example 3:
Constraints:
•
•
1800. Maximum Ascending Subarray Sum
Topic: Array
Difficulty: Easy
Problem:
Given an array of positive integers
nums, return the maximum possible sum of an ascending subarray in nums.A subarray is defined as a contiguous sequence of numbers in an array.
A subarray
[nums_l, nums_l+1, ..., nums_r-1, nums_r] is ascending if for all i where l <= i < r, nums_i < nums_i+1. Note that a subarray of size 1 is ascending.Example 1:
Input: nums = [10,20,30,5,10,50]
Output: 65
Explanation: [5,10,50] is the ascending subarray with the maximum sum of 65.
Example 2:
Input: nums = [10,20,30,40,50]
Output: 150
Explanation: [10,20,30,40,50] is the ascending subarray with the maximum sum of 150.
Example 3:
Input: nums = [12,17,15,13,10,11,12]
Output: 33
Explanation: [10,11,12] is the ascending subarray with the maximum sum of 33.
Constraints:
•
1 <= nums.length <= 100•
1 <= nums[i] <= 1002025-02-05
1790. Check if One String Swap Can Make Strings Equal
Topic: Hash Table, String, Counting
Difficulty: Easy
Problem:
You are given two strings
Return
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
1790. Check if One String Swap Can Make Strings Equal
Topic: Hash Table, String, Counting
Difficulty: Easy
Problem:
You are given two strings
s1 and s2 of equal length. A string swap is an operation where you choose two indices in a string (not necessarily different) and swap the characters at these indices.Return
true if it is possible to make both strings equal by performing at most one string swap on exactly one of the strings. Otherwise, return false.Example 1:
Input: s1 = "bank", s2 = "kanb"
Output: true
Explanation: For example, swap the first character with the last character of s2 to make "bank".
Example 2:
Input: s1 = "attack", s2 = "defend"
Output: false
Explanation: It is impossible to make them equal with one string swap.
Example 3:
Input: s1 = "kelb", s2 = "kelb"
Output: true
Explanation: The two strings are already equal, so no string swap operation is required.
Constraints:
•
1 <= s1.length, s2.length <= 100•
s1.length == s2.length•
s1 and s2 consist of only lowercase English letters.2025-02-06
1726. Tuple with Same Product
Topic: Array, Hash Table, Counting
Difficulty: Medium
Problem:
Given an array
Example 1:
Example 2:
Constraints:
•
•
• All elements in
1726. Tuple with Same Product
Topic: Array, Hash Table, Counting
Difficulty: Medium
Problem:
Given an array
nums of distinct positive integers, return the number of tuples (a, b, c, d) such that a * b = c * d where a, b, c, and d are elements of nums, and a != b != c != d.Example 1:
Input: nums = [2,3,4,6]
Output: 8
Explanation: There are 8 valid tuples:
(2,6,3,4) , (2,6,4,3) , (6,2,3,4) , (6,2,4,3)
(3,4,2,6) , (4,3,2,6) , (3,4,6,2) , (4,3,6,2)
Example 2:
Input: nums = [1,2,4,5,10]
Output: 16
Explanation: There are 16 valid tuples:
(1,10,2,5) , (1,10,5,2) , (10,1,2,5) , (10,1,5,2)
(2,5,1,10) , (2,5,10,1) , (5,2,1,10) , (5,2,10,1)
(2,10,4,5) , (2,10,5,4) , (10,2,4,5) , (10,2,5,4)
(4,5,2,10) , (4,5,10,2) , (5,4,2,10) , (5,4,10,2)
Constraints:
•
1 <= nums.length <= 1000•
1 <= nums[i] <= 10^4• All elements in
nums are distinct.2025-02-07
3160. Find the Number of Distinct Colors Among the Balls
Topic: Array, Hash Table, Simulation
Difficulty: Medium
Problem:
You are given an integer
There are
Return an array
Note that when answering a query, lack of a color will not be considered as a color.
Example 1:
Input: limit = 4, queries = [1,4,2,5,1,3,3,4]
Output: 1,2,2,3
Explanation:
Image: https://assets.leetcode.com/uploads/2024/04/17/ezgifcom-crop.gif
• After query 0, ball 1 has color 4.
• After query 1, ball 1 has color 4, and ball 2 has color 5.
• After query 2, ball 1 has color 3, and ball 2 has color 5.
• After query 3, ball 1 has color 3, ball 2 has color 5, and ball 3 has color 4.
Example 2:
Input: limit = 4, queries = [0,1,1,2,2,2,3,4,4,5]
Output: 1,2,2,3,4
Explanation:
Image: https://assets.leetcode.com/uploads/2024/04/17/ezgifcom-crop2.gif
• After query 0, ball 0 has color 1.
• After query 1, ball 0 has color 1, and ball 1 has color 2.
• After query 2, ball 0 has color 1, and balls 1 and 2 have color 2.
• After query 3, ball 0 has color 1, balls 1 and 2 have color 2, and ball 3 has color 4.
• After query 4, ball 0 has color 1, balls 1 and 2 have color 2, ball 3 has color 4, and ball 4 has color 5.
Constraints:
•
•
•
•
•
3160. Find the Number of Distinct Colors Among the Balls
Topic: Array, Hash Table, Simulation
Difficulty: Medium
Problem:
You are given an integer
limit and a 2D array queries of size n x 2.There are
limit + 1 balls with distinct labels in the range [0, limit]. Initially, all balls are uncolored. For every query in queries that is of the form [x, y], you mark ball x with the color y. After each query, you need to find the number of distinct colors among the balls.Return an array
result of length n, where result[i] denotes the number of distinct colors after i^th query.Note that when answering a query, lack of a color will not be considered as a color.
Example 1:
Input: limit = 4, queries = [1,4,2,5,1,3,3,4]
Output: 1,2,2,3
Explanation:
Image: https://assets.leetcode.com/uploads/2024/04/17/ezgifcom-crop.gif
• After query 0, ball 1 has color 4.
• After query 1, ball 1 has color 4, and ball 2 has color 5.
• After query 2, ball 1 has color 3, and ball 2 has color 5.
• After query 3, ball 1 has color 3, ball 2 has color 5, and ball 3 has color 4.
Example 2:
Input: limit = 4, queries = [0,1,1,2,2,2,3,4,4,5]
Output: 1,2,2,3,4
Explanation:
Image: https://assets.leetcode.com/uploads/2024/04/17/ezgifcom-crop2.gif
• After query 0, ball 0 has color 1.
• After query 1, ball 0 has color 1, and ball 1 has color 2.
• After query 2, ball 0 has color 1, and balls 1 and 2 have color 2.
• After query 3, ball 0 has color 1, balls 1 and 2 have color 2, and ball 3 has color 4.
• After query 4, ball 0 has color 1, balls 1 and 2 have color 2, ball 3 has color 4, and ball 4 has color 5.
Constraints:
•
1 <= limit <= 10^9•
1 <= n == queries.length <= 10^5•
queries[i].length == 2•
0 <= queries[i][0] <= limit•
1 <= queries[i][1] <= 10^92025-02-08
2349. Design a Number Container System
Topic: Hash Table, Design, Heap (Priority Queue), Ordered Set
Difficulty: Medium
Problem:
Design a number container system that can do the following:
• Insert or Replace a number at the given index in the system.
• Return the smallest index for the given number in the system.
Implement the
•
•
•
Example 1:
Constraints:
•
• At most
2349. Design a Number Container System
Topic: Hash Table, Design, Heap (Priority Queue), Ordered Set
Difficulty: Medium
Problem:
Design a number container system that can do the following:
• Insert or Replace a number at the given index in the system.
• Return the smallest index for the given number in the system.
Implement the
NumberContainers class:•
NumberContainers() Initializes the number container system.•
void change(int index, int number) Fills the container at index with the number. If there is already a number at that index, replace it.•
int find(int number) Returns the smallest index for the given number, or -1 if there is no index that is filled by number in the system.Example 1:
Input
["NumberContainers", "find", "change", "change", "change", "change", "find", "change", "find"]
[[], [10], [2, 10], [1, 10], [3, 10], [5, 10], [10], [1, 20], [10]]
Output
[null, -1, null, null, null, null, 1, null, 2]
Explanation
NumberContainers nc = new NumberContainers();
nc.find(10); // There is no index that is filled with number 10. Therefore, we return -1.
nc.change(2, 10); // Your container at index 2 will be filled with number 10.
nc.change(1, 10); // Your container at index 1 will be filled with number 10.
nc.change(3, 10); // Your container at index 3 will be filled with number 10.
nc.change(5, 10); // Your container at index 5 will be filled with number 10.
nc.find(10); // Number 10 is at the indices 1, 2, 3, and 5. Since the smallest index that is filled with 10 is 1, we return 1.
nc.change(1, 20); // Your container at index 1 will be filled with number 20. Note that index 1 was filled with 10 and then replaced with 20.
nc.find(10); // Number 10 is at the indices 2, 3, and 5. The smallest index that is filled with 10 is 2. Therefore, we return 2.
Constraints:
•
1 <= index, number <= 10^9• At most
10^5 calls will be made in total to change and find.2025-02-09
2364. Count Number of Bad Pairs
Topic: Array, Hash Table, Math, Counting
Difficulty: Medium
Problem:
You are given a 0-indexed integer array
Return the total number of bad pairs in
Example 1:
Example 2:
Constraints:
•
•
2364. Count Number of Bad Pairs
Topic: Array, Hash Table, Math, Counting
Difficulty: Medium
Problem:
You are given a 0-indexed integer array
nums. A pair of indices (i, j) is a bad pair if i < j and j - i != nums[j] - nums[i].Return the total number of bad pairs in
nums.Example 1:
Input: nums = [4,1,3,3]
Output: 5
Explanation: The pair (0, 1) is a bad pair since 1 - 0 != 1 - 4.
The pair (0, 2) is a bad pair since 2 - 0 != 3 - 4, 2 != -1.
The pair (0, 3) is a bad pair since 3 - 0 != 3 - 4, 3 != -1.
The pair (1, 2) is a bad pair since 2 - 1 != 3 - 1, 1 != 2.
The pair (2, 3) is a bad pair since 3 - 2 != 3 - 3, 1 != 0.
There are a total of 5 bad pairs, so we return 5.
Example 2:
Input: nums = [1,2,3,4,5]
Output: 0
Explanation: There are no bad pairs.
Constraints:
•
1 <= nums.length <= 10^5•
1 <= nums[i] <= 10^92025-02-10
3174. Clear Digits
Topic: String, Stack, Simulation
Difficulty: Easy
Problem:
You are given a string
Your task is to remove all digits by doing this operation repeatedly:
• Delete the first digit and the closest non-digit character to its left.
Return the resulting string after removing all digits.
Example 1:
Input: s = "abc"
Output: "abc"
Explanation:
There is no digit in the string.
Example 2:
Input: s = "cb34"
Output: ""
Explanation:
First, we apply the operation on
Then we apply the operation on
Constraints:
•
•
• The input is generated such that it is possible to delete all digits.
3174. Clear Digits
Topic: String, Stack, Simulation
Difficulty: Easy
Problem:
You are given a string
s.Your task is to remove all digits by doing this operation repeatedly:
• Delete the first digit and the closest non-digit character to its left.
Return the resulting string after removing all digits.
Example 1:
Input: s = "abc"
Output: "abc"
Explanation:
There is no digit in the string.
Example 2:
Input: s = "cb34"
Output: ""
Explanation:
First, we apply the operation on
s[2], and s becomes "c4".Then we apply the operation on
s[1], and s becomes "".Constraints:
•
1 <= s.length <= 100•
s consists only of lowercase English letters and digits.• The input is generated such that it is possible to delete all digits.
2025-02-11
1910. Remove All Occurrences of a Substring
Topic: String, Stack, Simulation
Difficulty: Medium
Problem:
Given two strings
• Find the leftmost occurrence of the substring
Return
A substring is a contiguous sequence of characters in a string.
Example 1:
Example 2:
Constraints:
•
•
•
1910. Remove All Occurrences of a Substring
Topic: String, Stack, Simulation
Difficulty: Medium
Problem:
Given two strings
s and part, perform the following operation on s until all occurrences of the substring part are removed:• Find the leftmost occurrence of the substring
part and remove it from s.Return
s after removing all occurrences of part.A substring is a contiguous sequence of characters in a string.
Example 1:
Input: s = "daabcbaabcbc", part = "abc"
Output: "dab"
Explanation: The following operations are done:
- s = "daabcbaabcbc", remove "abc" starting at index 2, so s = "dabaabcbc".
- s = "dabaabcbc", remove "abc" starting at index 4, so s = "dababc".
- s = "dababc", remove "abc" starting at index 3, so s = "dab".
Now s has no occurrences of "abc".
Example 2:
Input: s = "axxxxyyyyb", part = "xy"
Output: "ab"
Explanation: The following operations are done:
- s = "axxxxyyyyb", remove "xy" starting at index 4 so s = "axxxyyyb".
- s = "axxxyyyb", remove "xy" starting at index 3 so s = "axxyyb".
- s = "axxyyb", remove "xy" starting at index 2 so s = "axyb".
- s = "axyb", remove "xy" starting at index 1 so s = "ab".
Now s has no occurrences of "xy".
Constraints:
•
1 <= s.length <= 1000•
1 <= part.length <= 1000•
s and part consists of lowercase English letters.2025-02-12
2342. Max Sum of a Pair With Equal Sum of Digits
Topic: Array, Hash Table, Sorting, Heap (Priority Queue)
Difficulty: Medium
Problem:
You are given a 0-indexed array
Return the maximum value of
Example 1:
Example 2:
Constraints:
•
•
2342. Max Sum of a Pair With Equal Sum of Digits
Topic: Array, Hash Table, Sorting, Heap (Priority Queue)
Difficulty: Medium
Problem:
You are given a 0-indexed array
nums consisting of positive integers. You can choose two indices i and j, such that i != j, and the sum of digits of the number nums[i] is equal to that of nums[j].Return the maximum value of
nums[i] + nums[j] that you can obtain over all possible indices i and j that satisfy the conditions.Example 1:
Input: nums = [18,43,36,13,7]
Output: 54
Explanation: The pairs (i, j) that satisfy the conditions are:
- (0, 2), both numbers have a sum of digits equal to 9, and their sum is 18 + 36 = 54.
- (1, 4), both numbers have a sum of digits equal to 7, and their sum is 43 + 7 = 50.
So the maximum sum that we can obtain is 54.
Example 2:
Input: nums = [10,12,19,14]
Output: -1
Explanation: There are no two numbers that satisfy the conditions, so we return -1.
Constraints:
•
1 <= nums.length <= 10^5•
1 <= nums[i] <= 10^92025-02-13
3066. Minimum Operations to Exceed Threshold Value II
Topic: Array, Heap (Priority Queue), Simulation
Difficulty: Medium
Problem:
You are given a 0-indexed integer array
In one operation, you will:
• Take the two smallest integers
• Remove
• Add
Note that you can only apply the described operation if
Return the minimum number of operations needed so that all elements of the array are greater than or equal to
Example 1:
Example 2:
Constraints:
•
•
•
• The input is generated such that an answer always exists. That is, there exists some sequence of operations after which all elements of the array are greater than or equal to
3066. Minimum Operations to Exceed Threshold Value II
Topic: Array, Heap (Priority Queue), Simulation
Difficulty: Medium
Problem:
You are given a 0-indexed integer array
nums, and an integer k.In one operation, you will:
• Take the two smallest integers
x and y in nums.• Remove
x and y from nums.• Add
min(x, y) * 2 + max(x, y) anywhere in the array.Note that you can only apply the described operation if
nums contains at least two elements.Return the minimum number of operations needed so that all elements of the array are greater than or equal to
k.Example 1:
Input: nums = [2,11,10,1,3], k = 10
Output: 2
Explanation: In the first operation, we remove elements 1 and 2, then add 1 * 2 + 2 to nums. nums becomes equal to [4, 11, 10, 3].
In the second operation, we remove elements 3 and 4, then add 3 * 2 + 4 to nums. nums becomes equal to [10, 11, 10].
At this stage, all the elements of nums are greater than or equal to 10 so we can stop.
It can be shown that 2 is the minimum number of operations needed so that all elements of the array are greater than or equal to 10.
Example 2:
Input: nums = [1,1,2,4,9], k = 20
Output: 4
Explanation: After one operation, nums becomes equal to [2, 4, 9, 3].
After two operations, nums becomes equal to [7, 4, 9].
After three operations, nums becomes equal to [15, 9].
After four operations, nums becomes equal to [33].
At this stage, all the elements of nums are greater than 20 so we can stop.
It can be shown that 4 is the minimum number of operations needed so that all elements of the array are greater than or equal to 20.
Constraints:
•
2 <= nums.length <= 2 * 10^5•
1 <= nums[i] <= 10^9•
1 <= k <= 10^9• The input is generated such that an answer always exists. That is, there exists some sequence of operations after which all elements of the array are greater than or equal to
k.2025-02-14
1352. Product of the Last K Numbers
Topic: Array, Math, Design, Data Stream, Prefix Sum
Difficulty: Medium
Problem:
Design an algorithm that accepts a stream of integers and retrieves the product of the last
Implement the
•
•
•
The test cases are generated so that, at any time, the product of any contiguous sequence of numbers will fit into a single 32-bit integer without overflowing.
Example:
Constraints:
•
•
• At most
• The product of the stream at any point in time will fit in a 32-bit integer.
Follow-up: Can you implement both
1352. Product of the Last K Numbers
Topic: Array, Math, Design, Data Stream, Prefix Sum
Difficulty: Medium
Problem:
Design an algorithm that accepts a stream of integers and retrieves the product of the last
k integers of the stream.Implement the
ProductOfNumbers class:•
ProductOfNumbers() Initializes the object with an empty stream.•
void add(int num) Appends the integer num to the stream.•
int getProduct(int k) Returns the product of the last k numbers in the current list. You can assume that always the current list has at least k numbers.The test cases are generated so that, at any time, the product of any contiguous sequence of numbers will fit into a single 32-bit integer without overflowing.
Example:
Input
["ProductOfNumbers","add","add","add","add","add","getProduct","getProduct","getProduct","add","getProduct"]
[[],[3],[0],[2],[5],[4],[2],[3],[4],[8],[2]]
Output
[null,null,null,null,null,null,20,40,0,null,32]
Explanation
ProductOfNumbers productOfNumbers = new ProductOfNumbers();
productOfNumbers.add(3); // [3]
productOfNumbers.add(0); // [3,0]
productOfNumbers.add(2); // [3,0,2]
productOfNumbers.add(5); // [3,0,2,5]
productOfNumbers.add(4); // [3,0,2,5,4]
productOfNumbers.getProduct(2); // return 20. The product of the last 2 numbers is 5 * 4 = 20
productOfNumbers.getProduct(3); // return 40. The product of the last 3 numbers is 2 * 5 * 4 = 40
productOfNumbers.getProduct(4); // return 0. The product of the last 4 numbers is 0 * 2 * 5 * 4 = 0
productOfNumbers.add(8); // [3,0,2,5,4,8]
productOfNumbers.getProduct(2); // return 32. The product of the last 2 numbers is 4 * 8 = 32
Constraints:
•
0 <= num <= 100•
1 <= k <= 4 * 10^4• At most
4 * 10^4 calls will be made to add and getProduct.• The product of the stream at any point in time will fit in a 32-bit integer.
Follow-up: Can you implement both
GetProduct and Add to work in O(1) time complexity instead of O(k) time complexity?2025-02-15
2698. Find the Punishment Number of an Integer
Topic: Math, Backtracking
Difficulty: Medium
Problem:
Given a positive integer
The punishment number of
•
• The decimal representation of
Example 1:
Example 2:
Constraints:
•
2698. Find the Punishment Number of an Integer
Topic: Math, Backtracking
Difficulty: Medium
Problem:
Given a positive integer
n, return the punishment number of n.The punishment number of
n is defined as the sum of the squares of all integers i such that:•
1 <= i <= n• The decimal representation of
i * i can be partitioned into contiguous substrings such that the sum of the integer values of these substrings equals i.Example 1:
Input: n = 10
Output: 182
Explanation: There are exactly 3 integers i in the range [1, 10] that satisfy the conditions in the statement:
- 1 since 1 * 1 = 1
- 9 since 9 * 9 = 81 and 81 can be partitioned into 8 and 1 with a sum equal to 8 + 1 == 9.
- 10 since 10 * 10 = 100 and 100 can be partitioned into 10 and 0 with a sum equal to 10 + 0 == 10.
Hence, the punishment number of 10 is 1 + 81 + 100 = 182
Example 2:
Input: n = 37
Output: 1478
Explanation: There are exactly 4 integers i in the range [1, 37] that satisfy the conditions in the statement:
- 1 since 1 * 1 = 1.
- 9 since 9 * 9 = 81 and 81 can be partitioned into 8 + 1.
- 10 since 10 * 10 = 100 and 100 can be partitioned into 10 + 0.
- 36 since 36 * 36 = 1296 and 1296 can be partitioned into 1 + 29 + 6.
Hence, the punishment number of 37 is 1 + 81 + 100 + 1296 = 1478
Constraints:
•
1 <= n <= 10002025-02-16
1718. Construct the Lexicographically Largest Valid Sequence
Topic: Array, Backtracking
Difficulty: Medium
Problem:
Given an integer
• The integer
• Each integer between
• For every integer
The distance between two numbers on the sequence,
Return the lexicographically largest sequence. It is guaranteed that under the given constraints, there is always a solution.
A sequence
Example 1:
Example 2:
Constraints:
•
1718. Construct the Lexicographically Largest Valid Sequence
Topic: Array, Backtracking
Difficulty: Medium
Problem:
Given an integer
n, find a sequence that satisfies all of the following:• The integer
1 occurs once in the sequence.• Each integer between
2 and n occurs twice in the sequence.• For every integer
i between 2 and n, the distance between the two occurrences of i is exactly i.The distance between two numbers on the sequence,
a[i] and a[j], is the absolute difference of their indices, |j - i|.Return the lexicographically largest sequence. It is guaranteed that under the given constraints, there is always a solution.
A sequence
a is lexicographically larger than a sequence b (of the same length) if in the first position where a and b differ, sequence a has a number greater than the corresponding number in b. For example, [0,1,9,0] is lexicographically larger than [0,1,5,6] because the first position they differ is at the third number, and 9 is greater than 5.Example 1:
Input: n = 3
Output: [3,1,2,3,2]
Explanation: [2,3,2,1,3] is also a valid sequence, but [3,1,2,3,2] is the lexicographically largest valid sequence.
Example 2:
Input: n = 5
Output: [5,3,1,4,3,5,2,4,2]
Constraints:
•
1 <= n <= 202025-02-17
1079. Letter Tile Possibilities
Topic: Hash Table, String, Backtracking, Counting
Difficulty: Medium
Problem:
You have
Return the number of possible non-empty sequences of letters you can make using the letters printed on those
Example 1:
Example 2:
Example 3:
Constraints:
•
•
1079. Letter Tile Possibilities
Topic: Hash Table, String, Backtracking, Counting
Difficulty: Medium
Problem:
You have
n tiles, where each tile has one letter tiles[i] printed on it.Return the number of possible non-empty sequences of letters you can make using the letters printed on those
tiles.Example 1:
Input: tiles = "AAB"
Output: 8
Explanation: The possible sequences are "A", "B", "AA", "AB", "BA", "AAB", "ABA", "BAA".
Example 2:
Input: tiles = "AAABBC"
Output: 188
Example 3:
Input: tiles = "V"
Output: 1
Constraints:
•
1 <= tiles.length <= 7•
tiles consists of uppercase English letters.2025-02-18
2375. Construct Smallest Number From DI String
Topic: String, Backtracking, Stack, Greedy
Difficulty: Medium
Problem:
You are given a 0-indexed string
A 0-indexed string
•
• If
• If
Return the lexicographically smallest possible string
Example 1:
Example 2:
Constraints:
•
•
2375. Construct Smallest Number From DI String
Topic: String, Backtracking, Stack, Greedy
Difficulty: Medium
Problem:
You are given a 0-indexed string
pattern of length n consisting of the characters 'I' meaning increasing and 'D' meaning decreasing.A 0-indexed string
num of length n + 1 is created using the following conditions:•
num consists of the digits '1' to '9', where each digit is used at most once.• If
pattern[i] == 'I', then num[i] < num[i + 1].• If
pattern[i] == 'D', then num[i] > num[i + 1].Return the lexicographically smallest possible string
num that meets the conditions.Example 1:
Input: pattern = "IIIDIDDD"
Output: "123549876"
Explanation:
At indices 0, 1, 2, and 4 we must have that num[i] < num[i+1].
At indices 3, 5, 6, and 7 we must have that num[i] > num[i+1].
Some possible values of num are "245639871", "135749862", and "123849765".
It can be proven that "123549876" is the smallest possible num that meets the conditions.
Note that "123414321" is not possible because the digit '1' is used more than once.
Example 2:
Input: pattern = "DDD"
Output: "4321"
Explanation:
Some possible values of num are "9876", "7321", and "8742".
It can be proven that "4321" is the smallest possible num that meets the conditions.
Constraints:
•
1 <= pattern.length <= 8•
pattern consists of only the letters 'I' and 'D'.2025-02-19
1415. The k-th Lexicographical String of All Happy Strings of Length n
Topic: String, Backtracking
Difficulty: Medium
Problem:
A happy string is a string that:
• consists only of letters of the set
•
For example, strings "abc", "ac", "b" and "abcbabcbcb" are all happy strings and strings "aa", "baa" and "ababbc" are not happy strings.
Given two integers
Return the kth string of this list or return an empty string if there are less than
Example 1:
Example 2:
Example 3:
Constraints:
•
•
1415. The k-th Lexicographical String of All Happy Strings of Length n
Topic: String, Backtracking
Difficulty: Medium
Problem:
A happy string is a string that:
• consists only of letters of the set
['a', 'b', 'c'].•
s[i] != s[i + 1] for all values of i from 1 to s.length - 1 (string is 1-indexed).For example, strings "abc", "ac", "b" and "abcbabcbcb" are all happy strings and strings "aa", "baa" and "ababbc" are not happy strings.
Given two integers
n and k, consider a list of all happy strings of length n sorted in lexicographical order.Return the kth string of this list or return an empty string if there are less than
k happy strings of length n.Example 1:
Input: n = 1, k = 3
Output: "c"
Explanation: The list ["a", "b", "c"] contains all happy strings of length 1. The third string is "c".
Example 2:
Input: n = 1, k = 4
Output: ""
Explanation: There are only 3 happy strings of length 1.
Example 3:
Input: n = 3, k = 9
Output: "cab"
Explanation: There are 12 different happy string of length 3 ["aba", "abc", "aca", "acb", "bab", "bac", "bca", "bcb", "cab", "cac", "cba", "cbc"]. You will find the 9^th string = "cab"
Constraints:
•
1 <= n <= 10•
1 <= k <= 100