2025-06-18
2966. Divide Array Into Arrays With Max Difference
Topic: Array, Greedy, Sorting
Difficulty: Medium
Problem:
You are given an integer array
Divide the array
• The difference between any two elements in one array is less than or equal to
Return a 2D array containing the arrays. If it is impossible to satisfy the conditions, return an empty array. And if there are multiple answers, return any of them.
Example 1:
Input: nums = 1,3,4,8,7,9,3,5,1, k = 2
Output: [1,1,3,3,4,5,7,8,9]
Explanation:
The difference between any two elements in each array is less than or equal to 2.
Example 2:
Input: nums = 2,4,2,2,5,2, k = 2
Output:
Explanation:
Different ways to divide
• [2,2,2,2,4,5] (and its permutations)
• [2,2,4,2,2,5] (and its permutations)
Because there are four 2s there will be an array with the elements 2 and 5 no matter how we divide it. since
Example 3:
Input: nums = 4,2,9,8,2,12,7,12,10,5,8,5,5,7,9,2,5,11, k = 14
Output: [2,2,12,4,8,5,5,9,7,7,8,5,5,9,10,11,12,2]
Explanation:
The difference between any two elements in each array is less than or equal to 14.
Constraints:
•
•
•
•
•
2966. Divide Array Into Arrays With Max Difference
Topic: Array, Greedy, Sorting
Difficulty: Medium
Problem:
You are given an integer array
nums of size n where n is a multiple of 3 and a positive integer k.Divide the array
nums into n / 3 arrays of size 3 satisfying the following condition:• The difference between any two elements in one array is less than or equal to
k.Return a 2D array containing the arrays. If it is impossible to satisfy the conditions, return an empty array. And if there are multiple answers, return any of them.
Example 1:
Input: nums = 1,3,4,8,7,9,3,5,1, k = 2
Output: [1,1,3,3,4,5,7,8,9]
Explanation:
The difference between any two elements in each array is less than or equal to 2.
Example 2:
Input: nums = 2,4,2,2,5,2, k = 2
Output:
Explanation:
Different ways to divide
nums into 2 arrays of size 3 are:• [2,2,2,2,4,5] (and its permutations)
• [2,2,4,2,2,5] (and its permutations)
Because there are four 2s there will be an array with the elements 2 and 5 no matter how we divide it. since
5 - 2 = 3 > k, the condition is not satisfied and so there is no valid division.Example 3:
Input: nums = 4,2,9,8,2,12,7,12,10,5,8,5,5,7,9,2,5,11, k = 14
Output: [2,2,12,4,8,5,5,9,7,7,8,5,5,9,10,11,12,2]
Explanation:
The difference between any two elements in each array is less than or equal to 14.
Constraints:
•
n == nums.length•
1 <= n <= 10^5•
n is a multiple of 3•
1 <= nums[i] <= 10^5•
1 <= k <= 10^52025-06-19
2294. Partition Array Such That Maximum Difference Is K
Topic: Array, Greedy, Sorting
Difficulty: Medium
Problem:
You are given an integer array
Return the minimum number of subsequences needed such that the difference between the maximum and minimum values in each subsequence is at most
A subsequence is a sequence that can be derived from another sequence by deleting some or no elements without changing the order of the remaining elements.
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
2294. Partition Array Such That Maximum Difference Is K
Topic: Array, Greedy, Sorting
Difficulty: Medium
Problem:
You are given an integer array
nums and an integer k. You may partition nums into one or more subsequences such that each element in nums appears in exactly one of the subsequences.Return the minimum number of subsequences needed such that the difference between the maximum and minimum values in each subsequence is at most
k.A subsequence is a sequence that can be derived from another sequence by deleting some or no elements without changing the order of the remaining elements.
Example 1:
Input: nums = [3,6,1,2,5], k = 2
Output: 2
Explanation:
We can partition nums into the two subsequences [3,1,2] and [6,5].
The difference between the maximum and minimum value in the first subsequence is 3 - 1 = 2.
The difference between the maximum and minimum value in the second subsequence is 6 - 5 = 1.
Since two subsequences were created, we return 2. It can be shown that 2 is the minimum number of subsequences needed.
Example 2:
Input: nums = [1,2,3], k = 1
Output: 2
Explanation:
We can partition nums into the two subsequences [1,2] and [3].
The difference between the maximum and minimum value in the first subsequence is 2 - 1 = 1.
The difference between the maximum and minimum value in the second subsequence is 3 - 3 = 0.
Since two subsequences were created, we return 2. Note that another optimal solution is to partition nums into the two subsequences [1] and [2,3].
Example 3:
Input: nums = [2,2,4,5], k = 0
Output: 3
Explanation:
We can partition nums into the three subsequences [2,2], [4], and [5].
The difference between the maximum and minimum value in the first subsequences is 2 - 2 = 0.
The difference between the maximum and minimum value in the second subsequences is 4 - 4 = 0.
The difference between the maximum and minimum value in the third subsequences is 5 - 5 = 0.
Since three subsequences were created, we return 3. It can be shown that 3 is the minimum number of subsequences needed.
Constraints:
•
1 <= nums.length <= 10^5•
0 <= nums[i] <= 10^5•
0 <= k <= 10^52025-06-20
3443. Maximum Manhattan Distance After K Changes
Topic: Hash Table, Math, String, Counting
Difficulty: Medium
Problem:
You are given a string
•
•
•
•
Initially, you are at the origin
Find the maximum Manhattan distance from the origin that can be achieved at any time while performing the movements in order.
The Manhattan Distance between two cells
Example 1:
Input: s = "NWSE", k = 1
Output: 3
Explanation:
Change
MovementPosition (x, y)Manhattan DistanceMaximums0 == 'N'(0, 1)0 + 1 = 11s1 == 'W'(-1, 1)1 + 1 = 22s2 == 'N'(-1, 2)1 + 2 = 33s3 == 'E'(0, 2)0 + 2 = 23
The maximum Manhattan distance from the origin that can be achieved is 3. Hence, 3 is the output.
Example 2:
Input: s = "NSWWEW", k = 3
Output: 6
Explanation:
Change
The maximum Manhattan distance from the origin that can be achieved is 6. Hence, 6 is the output.
Constraints:
•
•
•
3443. Maximum Manhattan Distance After K Changes
Topic: Hash Table, Math, String, Counting
Difficulty: Medium
Problem:
You are given a string
s consisting of the characters 'N', 'S', 'E', and 'W', where s[i] indicates movements in an infinite grid:•
'N' : Move north by 1 unit.•
'S' : Move south by 1 unit.•
'E' : Move east by 1 unit.•
'W' : Move west by 1 unit.Initially, you are at the origin
(0, 0). You can change at most k characters to any of the four directions.Find the maximum Manhattan distance from the origin that can be achieved at any time while performing the movements in order.
The Manhattan Distance between two cells
(x_i, y_i) and (x_j, y_j) is |x_i - x_j| + |y_i - y_j|.Example 1:
Input: s = "NWSE", k = 1
Output: 3
Explanation:
Change
s[2] from 'S' to 'N'. The string s becomes "NWNE".MovementPosition (x, y)Manhattan DistanceMaximums0 == 'N'(0, 1)0 + 1 = 11s1 == 'W'(-1, 1)1 + 1 = 22s2 == 'N'(-1, 2)1 + 2 = 33s3 == 'E'(0, 2)0 + 2 = 23
The maximum Manhattan distance from the origin that can be achieved is 3. Hence, 3 is the output.
Example 2:
Input: s = "NSWWEW", k = 3
Output: 6
Explanation:
Change
s[1] from 'S' to 'N', and s[4] from 'E' to 'W'. The string s becomes "NNWWWW".The maximum Manhattan distance from the origin that can be achieved is 6. Hence, 6 is the output.
Constraints:
•
1 <= s.length <= 10^5•
0 <= k <= s.length•
s consists of only 'N', 'S', 'E', and 'W'.2025-06-21
3085. Minimum Deletions to Make String K-Special
Topic: Hash Table, String, Greedy, Sorting, Counting
Difficulty: Medium
Problem:
You are given a string
We consider
Here,
Return the minimum number of characters you need to delete to make
Example 1:
Input: word = "aabcaba", k = 0
Output: 3
Explanation: We can make
Example 2:
Input: word = "dabdcbdcdcd", k = 2
Output: 2
Explanation: We can make
Example 3:
Input: word = "aaabaaa", k = 2
Output: 1
Explanation: We can make
Constraints:
•
•
•
3085. Minimum Deletions to Make String K-Special
Topic: Hash Table, String, Greedy, Sorting, Counting
Difficulty: Medium
Problem:
You are given a string
word and an integer k.We consider
word to be k-special if |freq(word[i]) - freq(word[j])| <= k for all indices i and j in the string.Here,
freq(x) denotes the frequency of the character x in word, and |y| denotes the absolute value of y.Return the minimum number of characters you need to delete to make
word k-special.Example 1:
Input: word = "aabcaba", k = 0
Output: 3
Explanation: We can make
word 0-special by deleting 2 occurrences of "a" and 1 occurrence of "c". Therefore, word becomes equal to "baba" where freq('a') == freq('b') == 2.Example 2:
Input: word = "dabdcbdcdcd", k = 2
Output: 2
Explanation: We can make
word 2-special by deleting 1 occurrence of "a" and 1 occurrence of "d". Therefore, word becomes equal to "bdcbdcdcd" where freq('b') == 2, freq('c') == 3, and freq('d') == 4.Example 3:
Input: word = "aaabaaa", k = 2
Output: 1
Explanation: We can make
word 2-special by deleting 1 occurrence of "b". Therefore, word becomes equal to "aaaaaa" where each letter's frequency is now uniformly 6.Constraints:
•
1 <= word.length <= 10^5•
0 <= k <= 10^5•
word consists only of lowercase English letters.2025-06-22
2138. Divide a String Into Groups of Size k
Topic: String, Simulation
Difficulty: Easy
Problem:
A string
• The first group consists of the first
• For the last group, if the string does not have
Note that the partition is done so that after removing the
Given the string
Example 1:
Example 2:
Constraints:
•
•
•
•
2138. Divide a String Into Groups of Size k
Topic: String, Simulation
Difficulty: Easy
Problem:
A string
s can be partitioned into groups of size k using the following procedure:• The first group consists of the first
k characters of the string, the second group consists of the next k characters of the string, and so on. Each element can be a part of exactly one group.• For the last group, if the string does not have
k characters remaining, a character fill is used to complete the group.Note that the partition is done so that after removing the
fill character from the last group (if it exists) and concatenating all the groups in order, the resultant string should be s.Given the string
s, the size of each group k and the character fill, return a string array denoting the composition of every group s has been divided into, using the above procedure.Example 1:
Input: s = "abcdefghi", k = 3, fill = "x"
Output: ["abc","def","ghi"]
Explanation:
The first 3 characters "abc" form the first group.
The next 3 characters "def" form the second group.
The last 3 characters "ghi" form the third group.
Since all groups can be completely filled by characters from the string, we do not need to use fill.
Thus, the groups formed are "abc", "def", and "ghi".
Example 2:
Input: s = "abcdefghij", k = 3, fill = "x"
Output: ["abc","def","ghi","jxx"]
Explanation:
Similar to the previous example, we are forming the first three groups "abc", "def", and "ghi".
For the last group, we can only use the character 'j' from the string. To complete this group, we add 'x' twice.
Thus, the 4 groups formed are "abc", "def", "ghi", and "jxx".
Constraints:
•
1 <= s.length <= 100•
s consists of lowercase English letters only.•
1 <= k <= 100•
fill is a lowercase English letter.2025-06-23
2081. Sum of k-Mirror Numbers
Topic: Math, Enumeration
Difficulty: Hard
Problem:
A k-mirror number is a positive integer without leading zeros that reads the same both forward and backward in base-10 as well as in base-k.
• For example,
• On the contrary,
Given the base
Example 1:
Example 2:
Example 3:
Constraints:
•
•
2081. Sum of k-Mirror Numbers
Topic: Math, Enumeration
Difficulty: Hard
Problem:
A k-mirror number is a positive integer without leading zeros that reads the same both forward and backward in base-10 as well as in base-k.
• For example,
9 is a 2-mirror number. The representation of 9 in base-10 and base-2 are 9 and 1001 respectively, which read the same both forward and backward.• On the contrary,
4 is not a 2-mirror number. The representation of 4 in base-2 is 100, which does not read the same both forward and backward.Given the base
k and the number n, return the sum of the n smallest k-mirror numbers.Example 1:
Input: k = 2, n = 5
Output: 25
Explanation:
The 5 smallest 2-mirror numbers and their representations in base-2 are listed as follows:
base-10 base-2
1 1
3 11
5 101
7 111
9 1001
Their sum = 1 + 3 + 5 + 7 + 9 = 25.
Example 2:
Input: k = 3, n = 7
Output: 499
Explanation:
The 7 smallest 3-mirror numbers are and their representations in base-3 are listed as follows:
base-10 base-3
1 1
2 2
4 11
8 22
121 11111
151 12121
212 21212
Their sum = 1 + 2 + 4 + 8 + 121 + 151 + 212 = 499.
Example 3:
Input: k = 7, n = 17
Output: 20379000
Explanation: The 17 smallest 7-mirror numbers are:
1, 2, 3, 4, 5, 6, 8, 121, 171, 242, 292, 16561, 65656, 2137312, 4602064, 6597956, 6958596
Constraints:
•
2 <= k <= 9•
1 <= n <= 302025-06-24
2200. Find All K-Distant Indices in an Array
Topic: Array, Two Pointers
Difficulty: Easy
Problem:
You are given a 0-indexed integer array
Return a list of all k-distant indices sorted in increasing order.
Example 1:
Example 2:
Constraints:
•
•
•
•
2200. Find All K-Distant Indices in an Array
Topic: Array, Two Pointers
Difficulty: Easy
Problem:
You are given a 0-indexed integer array
nums and two integers key and k. A k-distant index is an index i of nums for which there exists at least one index j such that |i - j| <= k and nums[j] == key.Return a list of all k-distant indices sorted in increasing order.
Example 1:
Input: nums = [3,4,9,1,3,9,5], key = 9, k = 1
Output: [1,2,3,4,5,6]
Explanation: Here, nums[2] == key and nums[5] == key.
- For index 0, |0 - 2| > k and |0 - 5| > k, so there is no j where |0 - j| <= k and nums[j] == key. Thus, 0 is not a k-distant index.
- For index 1, |1 - 2| <= k and nums[2] == key, so 1 is a k-distant index.
- For index 2, |2 - 2| <= k and nums[2] == key, so 2 is a k-distant index.
- For index 3, |3 - 2| <= k and nums[2] == key, so 3 is a k-distant index.
- For index 4, |4 - 5| <= k and nums[5] == key, so 4 is a k-distant index.
- For index 5, |5 - 5| <= k and nums[5] == key, so 5 is a k-distant index.
- For index 6, |6 - 5| <= k and nums[5] == key, so 6 is a k-distant index.
Thus, we return [1,2,3,4,5,6] which is sorted in increasing order.
Example 2:
Input: nums = [2,2,2,2,2], key = 2, k = 2
Output: [0,1,2,3,4]
Explanation: For all indices i in nums, there exists some index j such that |i - j| <= k and nums[j] == key, so every index is a k-distant index.
Hence, we return [0,1,2,3,4].
Constraints:
•
1 <= nums.length <= 1000•
1 <= nums[i] <= 1000•
key is an integer from the array nums.•
1 <= k <= nums.length2025-06-25
2040. Kth Smallest Product of Two Sorted Arrays
Topic: Array, Binary Search
Difficulty: Hard
Problem:
Given two sorted 0-indexed integer arrays
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
•
2040. Kth Smallest Product of Two Sorted Arrays
Topic: Array, Binary Search
Difficulty: Hard
Problem:
Given two sorted 0-indexed integer arrays
nums1 and nums2 as well as an integer k, return the k^th (1-based) smallest product of nums1[i] * nums2[j] where 0 <= i < nums1.length and 0 <= j < nums2.length.Example 1:
Input: nums1 = [2,5], nums2 = [3,4], k = 2
Output: 8
Explanation: The 2 smallest products are:
- nums1[0] * nums2[0] = 2 * 3 = 6
- nums1[0] * nums2[1] = 2 * 4 = 8
The 2^nd smallest product is 8.
Example 2:
Input: nums1 = [-4,-2,0,3], nums2 = [2,4], k = 6
Output: 0
Explanation: The 6 smallest products are:
- nums1[0] * nums2[1] = (-4) * 4 = -16
- nums1[0] * nums2[0] = (-4) * 2 = -8
- nums1[1] * nums2[1] = (-2) * 4 = -8
- nums1[1] * nums2[0] = (-2) * 2 = -4
- nums1[2] * nums2[0] = 0 * 2 = 0
- nums1[2] * nums2[1] = 0 * 4 = 0
The 6^th smallest product is 0.
Example 3:
Input: nums1 = [-2,-1,0,1,2], nums2 = [-3,-1,2,4,5], k = 3
Output: -6
Explanation: The 3 smallest products are:
- nums1[0] * nums2[4] = (-2) * 5 = -10
- nums1[0] * nums2[3] = (-2) * 4 = -8
- nums1[4] * nums2[0] = 2 * (-3) = -6
The 3^rd smallest product is -6.
Constraints:
•
1 <= nums1.length, nums2.length <= 5 * 10^4•
-10^5 <= nums1[i], nums2[j] <= 10^5•
1 <= k <= nums1.length * nums2.length•
nums1 and nums2 are sorted.2025-06-26
2311. Longest Binary Subsequence Less Than or Equal to K
Topic: String, Dynamic Programming, Greedy, Memoization
Difficulty: Medium
Problem:
You are given a binary string
Return the length of the longest subsequence of
Note:
• The subsequence can contain leading zeroes.
• The empty string is considered to be equal to
• A subsequence is a string that can be derived from another string by deleting some or no characters without changing the order of the remaining characters.
Example 1:
Example 2:
Constraints:
•
•
•
2311. Longest Binary Subsequence Less Than or Equal to K
Topic: String, Dynamic Programming, Greedy, Memoization
Difficulty: Medium
Problem:
You are given a binary string
s and a positive integer k.Return the length of the longest subsequence of
s that makes up a binary number less than or equal to k.Note:
• The subsequence can contain leading zeroes.
• The empty string is considered to be equal to
0.• A subsequence is a string that can be derived from another string by deleting some or no characters without changing the order of the remaining characters.
Example 1:
Input: s = "1001010", k = 5
Output: 5
Explanation: The longest subsequence of s that makes up a binary number less than or equal to 5 is "00010", as this number is equal to 2 in decimal.
Note that "00100" and "00101" are also possible, which are equal to 4 and 5 in decimal, respectively.
The length of this subsequence is 5, so 5 is returned.
Example 2:
Input: s = "00101001", k = 1
Output: 6
Explanation: "000001" is the longest subsequence of s that makes up a binary number less than or equal to 1, as this number is equal to 1 in decimal.
The length of this subsequence is 6, so 6 is returned.
Constraints:
•
1 <= s.length <= 1000•
s[i] is either '0' or '1'.•
1 <= k <= 10^92025-06-27
2014. Longest Subsequence Repeated k Times
Topic: String, Backtracking, Greedy, Counting, Enumeration
Difficulty: Hard
Problem:
You are given a string
A subsequence is a string that can be derived from another string by deleting some or no characters without changing the order of the remaining characters.
A subsequence
• For example,
Return the longest subsequence repeated
Example 1:
Image: https://assets.leetcode.com/uploads/2021/08/30/longest-subsequence-repeat-k-times.png
Example 2:
Example 3:
Constraints:
•
•
•
•
2014. Longest Subsequence Repeated k Times
Topic: String, Backtracking, Greedy, Counting, Enumeration
Difficulty: Hard
Problem:
You are given a string
s of length n, and an integer k. You are tasked to find the longest subsequence repeated k times in string s.A subsequence is a string that can be derived from another string by deleting some or no characters without changing the order of the remaining characters.
A subsequence
seq is repeated k times in the string s if seq * k is a subsequence of s, where seq * k represents a string constructed by concatenating seq k times.• For example,
"bba" is repeated 2 times in the string "bababcba", because the string "bbabba", constructed by concatenating "bba" 2 times, is a subsequence of the string "bababcba".Return the longest subsequence repeated
k times in string s. If multiple such subsequences are found, return the lexicographically largest one. If there is no such subsequence, return an empty string.Example 1:
Image: https://assets.leetcode.com/uploads/2021/08/30/longest-subsequence-repeat-k-times.png
Input: s = "letsleetcode", k = 2
Output: "let"
Explanation: There are two longest subsequences repeated 2 times: "let" and "ete".
"let" is the lexicographically largest one.
Example 2:
Input: s = "bb", k = 2
Output: "b"
Explanation: The longest subsequence repeated 2 times is "b".
Example 3:
Input: s = "ab", k = 2
Output: ""
Explanation: There is no subsequence repeated 2 times. Empty string is returned.
Constraints:
•
n == s.length•
2 <= n, k <= 2000•
2 <= n < k * 8•
s consists of lowercase English letters.2025-06-28
2099. Find Subsequence of Length K With the Largest Sum
Topic: Array, Hash Table, Sorting, Heap (Priority Queue)
Difficulty: Easy
Problem:
You are given an integer array
Return any such subsequence as an integer array of length
A subsequence is an array that can be derived from another array by deleting some or no elements without changing the order of the remaining elements.
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
2099. Find Subsequence of Length K With the Largest Sum
Topic: Array, Hash Table, Sorting, Heap (Priority Queue)
Difficulty: Easy
Problem:
You are given an integer array
nums and an integer k. You want to find a subsequence of nums of length k that has the largest sum.Return any such subsequence as an integer array of length
k.A subsequence is an array that can be derived from another array by deleting some or no elements without changing the order of the remaining elements.
Example 1:
Input: nums = [2,1,3,3], k = 2
Output: [3,3]
Explanation:
The subsequence has the largest sum of 3 + 3 = 6.
Example 2:
Input: nums = [-1,-2,3,4], k = 3
Output: [-1,3,4]
Explanation:
The subsequence has the largest sum of -1 + 3 + 4 = 6.
Example 3:
Input: nums = [3,4,3,3], k = 2
Output: [3,4]
Explanation:
The subsequence has the largest sum of 3 + 4 = 7.
Another possible subsequence is [4, 3].
Constraints:
•
1 <= nums.length <= 1000•
-10^5 <= nums[i] <= 10^5•
1 <= k <= nums.length2025-06-29
1498. Number of Subsequences That Satisfy the Given Sum Condition
Topic: Array, Two Pointers, Binary Search, Sorting
Difficulty: Medium
Problem:
You are given an array of integers
Return the number of non-empty subsequences of
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
1498. Number of Subsequences That Satisfy the Given Sum Condition
Topic: Array, Two Pointers, Binary Search, Sorting
Difficulty: Medium
Problem:
You are given an array of integers
nums and an integer target.Return the number of non-empty subsequences of
nums such that the sum of the minimum and maximum element on it is less or equal to target. Since the answer may be too large, return it modulo 10^9 + 7.Example 1:
Input: nums = [3,5,6,7], target = 9
Output: 4
Explanation: There are 4 subsequences that satisfy the condition.
[3] -> Min value + max value <= target (3 + 3 <= 9)
[3,5] -> (3 + 5 <= 9)
[3,5,6] -> (3 + 6 <= 9)
[3,6] -> (3 + 6 <= 9)
Example 2:
Input: nums = [3,3,6,8], target = 10
Output: 6
Explanation: There are 6 subsequences that satisfy the condition. (nums can have repeated numbers).
[3] , [3] , [3,3], [3,6] , [3,6] , [3,3,6]
Example 3:
Input: nums = [2,3,3,4,6,7], target = 12
Output: 61
Explanation: There are 63 non-empty subsequences, two of them do not satisfy the condition ([6,7], [7]).
Number of valid subsequences (63 - 2 = 61).
Constraints:
•
1 <= nums.length <= 10^5•
1 <= nums[i] <= 10^6•
1 <= target <= 10^62025-06-30
594. Longest Harmonious Subsequence
Topic: Array, Hash Table, Sliding Window, Sorting, Counting
Difficulty: Easy
Problem:
We define a harmonious array as an array where the difference between its maximum value and its minimum value is exactly
Given an integer array
Example 1:
Input: nums = 1,3,2,2,5,2,3,7
Output: 5
Explanation:
The longest harmonious subsequence is
Example 2:
Input: nums = 1,2,3,4
Output: 2
Explanation:
The longest harmonious subsequences are
Example 3:
Input: nums = 1,1,1,1
Output: 0
Explanation:
No harmonic subsequence exists.
Constraints:
•
•
594. Longest Harmonious Subsequence
Topic: Array, Hash Table, Sliding Window, Sorting, Counting
Difficulty: Easy
Problem:
We define a harmonious array as an array where the difference between its maximum value and its minimum value is exactly
1.Given an integer array
nums, return the length of its longest harmonious subsequence among all its possible subsequences.Example 1:
Input: nums = 1,3,2,2,5,2,3,7
Output: 5
Explanation:
The longest harmonious subsequence is
[3,2,2,2,3].Example 2:
Input: nums = 1,2,3,4
Output: 2
Explanation:
The longest harmonious subsequences are
[1,2], [2,3], and [3,4], all of which have a length of 2.Example 3:
Input: nums = 1,1,1,1
Output: 0
Explanation:
No harmonic subsequence exists.
Constraints:
•
1 <= nums.length <= 2 * 10^4•
-10^9 <= nums[i] <= 10^92025-07-01
3330. Find the Original Typed String I
Topic: String
Difficulty: Easy
Problem:
Alice is attempting to type a specific string on her computer. However, she tends to be clumsy and may press a key for too long, resulting in a character being typed multiple times.
Although Alice tried to focus on her typing, she is aware that she may still have done this at most once.
You are given a string
Return the total number of possible original strings that Alice might have intended to type.
Example 1:
Input: word = "abbcccc"
Output: 5
Explanation:
The possible strings are:
Example 2:
Input: word = "abcd"
Output: 1
Explanation:
The only possible string is
Example 3:
Input: word = "aaaa"
Output: 4
Constraints:
•
•
3330. Find the Original Typed String I
Topic: String
Difficulty: Easy
Problem:
Alice is attempting to type a specific string on her computer. However, she tends to be clumsy and may press a key for too long, resulting in a character being typed multiple times.
Although Alice tried to focus on her typing, she is aware that she may still have done this at most once.
You are given a string
word, which represents the final output displayed on Alice's screen.Return the total number of possible original strings that Alice might have intended to type.
Example 1:
Input: word = "abbcccc"
Output: 5
Explanation:
The possible strings are:
"abbcccc", "abbccc", "abbcc", "abbc", and "abcccc".Example 2:
Input: word = "abcd"
Output: 1
Explanation:
The only possible string is
"abcd".Example 3:
Input: word = "aaaa"
Output: 4
Constraints:
•
1 <= word.length <= 100•
word consists only of lowercase English letters.2025-07-02
3333. Find the Original Typed String II
Topic: String, Dynamic Programming, Prefix Sum
Difficulty: Hard
Problem:
Alice is attempting to type a specific string on her computer. However, she tends to be clumsy and may press a key for too long, resulting in a character being typed multiple times.
You are given a string
Return the total number of possible original strings that Alice might have intended to type, if she was trying to type a string of size at least
Since the answer may be very large, return it modulo
Example 1:
Input: word = "aabbccdd", k = 7
Output: 5
Explanation:
The possible strings are:
Example 2:
Input: word = "aabbccdd", k = 8
Output: 1
Explanation:
The only possible string is
Example 3:
Input: word = "aaabbb", k = 3
Output: 8
Constraints:
•
•
•
3333. Find the Original Typed String II
Topic: String, Dynamic Programming, Prefix Sum
Difficulty: Hard
Problem:
Alice is attempting to type a specific string on her computer. However, she tends to be clumsy and may press a key for too long, resulting in a character being typed multiple times.
You are given a string
word, which represents the final output displayed on Alice's screen. You are also given a positive integer k.Return the total number of possible original strings that Alice might have intended to type, if she was trying to type a string of size at least
k.Since the answer may be very large, return it modulo
10^9 + 7.Example 1:
Input: word = "aabbccdd", k = 7
Output: 5
Explanation:
The possible strings are:
"aabbccdd", "aabbccd", "aabbcdd", "aabccdd", and "abbccdd".Example 2:
Input: word = "aabbccdd", k = 8
Output: 1
Explanation:
The only possible string is
"aabbccdd".Example 3:
Input: word = "aaabbb", k = 3
Output: 8
Constraints:
•
1 <= word.length <= 5 * 10^5•
word consists only of lowercase English letters.•
1 <= k <= 20002025-07-03
3304. Find the K-th Character in String Game I
Topic: Math, Bit Manipulation, Recursion, Simulation
Difficulty: Easy
Problem:
Alice and Bob are playing a game. Initially, Alice has a string
You are given a positive integer
Now Bob will ask Alice to perform the following operation forever:
• Generate a new string by changing each character in
For example, performing the operation on
Return the value of the
Note that the character
Example 1:
Input: k = 5
Output: "b"
Explanation:
Initially,
• Generated string is
• Generated string is
• Generated string is
Example 2:
Input: k = 10
Output: "c"
Constraints:
•
3304. Find the K-th Character in String Game I
Topic: Math, Bit Manipulation, Recursion, Simulation
Difficulty: Easy
Problem:
Alice and Bob are playing a game. Initially, Alice has a string
word = "a".You are given a positive integer
k.Now Bob will ask Alice to perform the following operation forever:
• Generate a new string by changing each character in
word to its next character in the English alphabet, and append it to the original word.For example, performing the operation on
"c" generates "cd" and performing the operation on "zb" generates "zbac".Return the value of the
k^th character in word, after enough operations have been done for word to have at least k characters.Note that the character
'z' can be changed to 'a' in the operation.Example 1:
Input: k = 5
Output: "b"
Explanation:
Initially,
word = "a". We need to do the operation three times:• Generated string is
"b", word becomes "ab".• Generated string is
"bc", word becomes "abbc".• Generated string is
"bccd", word becomes "abbcbccd".Example 2:
Input: k = 10
Output: "c"
Constraints:
•
1 <= k <= 5002025-07-04
3307. Find the K-th Character in String Game II
Topic: Math, Bit Manipulation, Recursion
Difficulty: Hard
Problem:
Alice and Bob are playing a game. Initially, Alice has a string
You are given a positive integer
Now Bob will ask Alice to perform all operations in sequence:
• If
• If
Return the value of the
Note that the character
Example 1:
Input: k = 5, operations = 0,0,0
Output: "a"
Explanation:
Initially,
• Appends
• Appends
• Appends
Example 2:
Input: k = 10, operations = 0,1,0,1
Output: "b"
Explanation:
Initially,
• Appends
• Appends
• Appends
• Appends
Constraints:
•
•
•
• The input is generated such that
3307. Find the K-th Character in String Game II
Topic: Math, Bit Manipulation, Recursion
Difficulty: Hard
Problem:
Alice and Bob are playing a game. Initially, Alice has a string
word = "a".You are given a positive integer
k. You are also given an integer array operations, where operations[i] represents the type of the i^th operation.Now Bob will ask Alice to perform all operations in sequence:
• If
operations[i] == 0, append a copy of word to itself.• If
operations[i] == 1, generate a new string by changing each character in word to its next character in the English alphabet, and append it to the original word. For example, performing the operation on "c" generates "cd" and performing the operation on "zb" generates "zbac".Return the value of the
k^th character in word after performing all the operations.Note that the character
'z' can be changed to 'a' in the second type of operation.Example 1:
Input: k = 5, operations = 0,0,0
Output: "a"
Explanation:
Initially,
word == "a". Alice performs the three operations as follows:• Appends
"a" to "a", word becomes "aa".• Appends
"aa" to "aa", word becomes "aaaa".• Appends
"aaaa" to "aaaa", word becomes "aaaaaaaa".Example 2:
Input: k = 10, operations = 0,1,0,1
Output: "b"
Explanation:
Initially,
word == "a". Alice performs the four operations as follows:• Appends
"a" to "a", word becomes "aa".• Appends
"bb" to "aa", word becomes "aabb".• Appends
"aabb" to "aabb", word becomes "aabbaabb".• Appends
"bbccbbcc" to "aabbaabb", word becomes "aabbaabbbbccbbcc".Constraints:
•
1 <= k <= 10^14•
1 <= operations.length <= 100•
operations[i] is either 0 or 1.• The input is generated such that
word has at least k characters after all operations.2025-07-05
1394. Find Lucky Integer in an Array
Topic: Array, Hash Table, Counting
Difficulty: Easy
Problem:
Given an array of integers
Return the largest lucky integer in the array. If there is no lucky integer return
Example 1:
Example 2:
Example 3:
Constraints:
•
•
1394. Find Lucky Integer in an Array
Topic: Array, Hash Table, Counting
Difficulty: Easy
Problem:
Given an array of integers
arr, a lucky integer is an integer that has a frequency in the array equal to its value.Return the largest lucky integer in the array. If there is no lucky integer return
-1.Example 1:
Input: arr = [2,2,3,4]
Output: 2
Explanation: The only lucky number in the array is 2 because frequency[2] == 2.
Example 2:
Input: arr = [1,2,2,3,3,3]
Output: 3
Explanation: 1, 2 and 3 are all lucky numbers, return the largest of them.
Example 3:
Input: arr = [2,2,2,3,3]
Output: -1
Explanation: There are no lucky numbers in the array.
Constraints:
•
1 <= arr.length <= 500•
1 <= arr[i] <= 5002025-07-06
1865. Finding Pairs With a Certain Sum
Topic: Array, Hash Table, Design
Difficulty: Medium
Problem:
You are given two integer arrays
1. Add a positive integer to an element of a given index in the array
2. Count the number of pairs
Implement the
•
•
•
Example 1:
Constraints:
•
•
•
•
•
•
•
• At most
1865. Finding Pairs With a Certain Sum
Topic: Array, Hash Table, Design
Difficulty: Medium
Problem:
You are given two integer arrays
nums1 and nums2. You are tasked to implement a data structure that supports queries of two types:1. Add a positive integer to an element of a given index in the array
nums2.2. Count the number of pairs
(i, j) such that nums1[i] + nums2[j] equals a given value (0 <= i < nums1.length and 0 <= j < nums2.length).Implement the
FindSumPairs class:•
FindSumPairs(int[] nums1, int[] nums2) Initializes the FindSumPairs object with two integer arrays nums1 and nums2.•
void add(int index, int val) Adds val to nums2[index], i.e., apply nums2[index] += val.•
int count(int tot) Returns the number of pairs (i, j) such that nums1[i] + nums2[j] == tot.Example 1:
Input
["FindSumPairs", "count", "add", "count", "count", "add", "add", "count"]
[[[1, 1, 2, 2, 2, 3], [1, 4, 5, 2, 5, 4]], [7], [3, 2], [8], [4], [0, 1], [1, 1], [7]]
Output
[null, 8, null, 2, 1, null, null, 11]
Explanation
FindSumPairs findSumPairs = new FindSumPairs([1, 1, 2, 2, 2, 3], [1, 4, 5, 2, 5, 4]);
findSumPairs.count(7); // return 8; pairs (2,2), (3,2), (4,2), (2,4), (3,4), (4,4) make 2 + 5 and pairs (5,1), (5,5) make 3 + 4
findSumPairs.add(3, 2); // now nums2 = [1,4,5,4,5,4]
findSumPairs.count(8); // return 2; pairs (5,2), (5,4) make 3 + 5
findSumPairs.count(4); // return 1; pair (5,0) makes 3 + 1
findSumPairs.add(0, 1); // now nums2 = [`2`,4,5,4,5,4]
findSumPairs.add(1, 1); // now nums2 = [2,5,5,4,5,4]
findSumPairs.count(7); // return 11; pairs (2,1), (2,2), (2,4), (3,1), (3,2), (3,4), (4,1), (4,2), (4,4) make 2 + 5 and pairs (5,3), (5,5) make 3 + 4
Constraints:
•
1 <= nums1.length <= 1000•
1 <= nums2.length <= 10^5•
1 <= nums1[i] <= 10^9•
1 <= nums2[i] <= 10^5•
0 <= index < nums2.length•
1 <= val <= 10^5•
1 <= tot <= 10^9• At most
1000 calls are made to add and count each.2025-07-07
1353. Maximum Number of Events That Can Be Attended
Topic: Array, Greedy, Sorting, Heap (Priority Queue)
Difficulty: Medium
Problem:
You are given an array of
You can attend an event
Return the maximum number of events you can attend.
Example 1:
Image: https://assets.leetcode.com/uploads/2020/02/05/e1.png
Example 2:
Constraints:
•
•
•
1353. Maximum Number of Events That Can Be Attended
Topic: Array, Greedy, Sorting, Heap (Priority Queue)
Difficulty: Medium
Problem:
You are given an array of
events where events[i] = [startDay_i, endDay_i]. Every event i starts at startDay_i and ends at endDay_i.You can attend an event
i at any day d where startTime_i <= d <= endTime_i. You can only attend one event at any time d.Return the maximum number of events you can attend.
Example 1:
Image: https://assets.leetcode.com/uploads/2020/02/05/e1.png
Input: events = [[1,2],[2,3],[3,4]]
Output: 3
Explanation: You can attend all the three events.
One way to attend them all is as shown.
Attend the first event on day 1.
Attend the second event on day 2.
Attend the third event on day 3.
Example 2:
Input: events= [[1,2],[2,3],[3,4],[1,2]]
Output: 4
Constraints:
•
1 <= events.length <= 10^5•
events[i].length == 2•
1 <= startDay_i <= endDay_i <= 10^5