2024-03-05
1750. Minimum Length of String After Deleting Similar Ends
Topic: Two Pointers, String
Difficulty: Medium
Problem:
Given a string
1. Pick a non-empty prefix from the string
2. Pick a non-empty suffix from the string
3. The prefix and the suffix should not intersect at any index.
4. The characters from the prefix and suffix must be the same.
5. Delete both the prefix and the suffix.
Return the minimum length of
Example 1:
Example 2:
Example 3:
Constraints:
•
•
1750. Minimum Length of String After Deleting Similar Ends
Topic: Two Pointers, String
Difficulty: Medium
Problem:
Given a string
s consisting only of characters 'a', 'b', and 'c'. You are asked to apply the following algorithm on the string any number of times:1. Pick a non-empty prefix from the string
s where all the characters in the prefix are equal.2. Pick a non-empty suffix from the string
s where all the characters in this suffix are equal.3. The prefix and the suffix should not intersect at any index.
4. The characters from the prefix and suffix must be the same.
5. Delete both the prefix and the suffix.
Return the minimum length of
s after performing the above operation any number of times (possibly zero times).Example 1:
Input: s = "ca"
Output: 2
Explanation: You can't remove any characters, so the string stays as is.
Example 2:
Input: s = "cabaabac"
Output: 0
Explanation: An optimal sequence of operations is:
- Take prefix = "c" and suffix = "c" and remove them, s = "abaaba".
- Take prefix = "a" and suffix = "a" and remove them, s = "baab".
- Take prefix = "b" and suffix = "b" and remove them, s = "aa".
- Take prefix = "a" and suffix = "a" and remove them, s = "".
Example 3:
Input: s = "aabccabba"
Output: 3
Explanation: An optimal sequence of operations is:
- Take prefix = "aa" and suffix = "a" and remove them, s = "bccabb".
- Take prefix = "b" and suffix = "bb" and remove them, s = "cca".
Constraints:
•
1 <= s.length <= 10^5•
s only consists of characters 'a', 'b', and 'c'.2024-03-06
141. Linked List Cycle
Topic: Hash Table, Linked List, Two Pointers
Difficulty: Easy
Problem:
Given
There is a cycle in a linked list if there is some node in the list that can be reached again by continuously following the
Return
Example 1:
Image: https://assets.leetcode.com/uploads/2018/12/07/circularlinkedlist.png
Example 2:
Image: https://assets.leetcode.com/uploads/2018/12/07/circularlinkedlist_test2.png
Example 3:
Image: https://assets.leetcode.com/uploads/2018/12/07/circularlinkedlist_test3.png
Constraints:
• The number of the nodes in the list is in the range
•
•
Follow up: Can you solve it using
141. Linked List Cycle
Topic: Hash Table, Linked List, Two Pointers
Difficulty: Easy
Problem:
Given
head, the head of a linked list, determine if the linked list has a cycle in it.There is a cycle in a linked list if there is some node in the list that can be reached again by continuously following the
next pointer. Internally, pos is used to denote the index of the node that tail's next pointer is connected to. Note that pos is not passed as a parameter.Return
true if there is a cycle in the linked list. Otherwise, return false.Example 1:
Image: https://assets.leetcode.com/uploads/2018/12/07/circularlinkedlist.png
Input: head = [3,2,0,-4], pos = 1
Output: true
Explanation: There is a cycle in the linked list, where the tail connects to the 1st node (0-indexed).
Example 2:
Image: https://assets.leetcode.com/uploads/2018/12/07/circularlinkedlist_test2.png
Input: head = [1,2], pos = 0
Output: true
Explanation: There is a cycle in the linked list, where the tail connects to the 0th node.
Example 3:
Image: https://assets.leetcode.com/uploads/2018/12/07/circularlinkedlist_test3.png
Input: head = [1], pos = -1
Output: false
Explanation: There is no cycle in the linked list.
Constraints:
• The number of the nodes in the list is in the range
[0, 10^4].•
-10^5 <= Node.val <= 10^5•
pos is -1 or a valid index in the linked-list.Follow up: Can you solve it using
O(1) (i.e. constant) memory?2024-03-12
1171. Remove Zero Sum Consecutive Nodes from Linked List
Topic: Hash Table, Linked List
Difficulty: Medium
Problem:
Given the
After doing so, return the head of the final linked list. You may return any such answer.
(Note that in the examples below, all sequences are serializations of
Example 1:
Example 2:
Example 3:
Constraints:
• The given linked list will contain between
• Each node in the linked list has
1171. Remove Zero Sum Consecutive Nodes from Linked List
Topic: Hash Table, Linked List
Difficulty: Medium
Problem:
Given the
head of a linked list, we repeatedly delete consecutive sequences of nodes that sum to 0 until there are no such sequences.After doing so, return the head of the final linked list. You may return any such answer.
(Note that in the examples below, all sequences are serializations of
ListNode objects.)Example 1:
Input: head = [1,2,-3,3,1]
Output: [3,1]
Note: The answer [1,2,1] would also be accepted.
Example 2:
Input: head = [1,2,3,-3,4]
Output: [1,2,4]
Example 3:
Input: head = [1,2,3,-3,-2]
Output: [1]
Constraints:
• The given linked list will contain between
1 and 1000 nodes.• Each node in the linked list has
-1000 <= node.val <= 1000.2024-03-13
2485. Find the Pivot Integer
Topic: Math, Prefix Sum
Difficulty: Easy
Problem:
Given a positive integer
• The sum of all elements between
Return the pivot integer
Example 1:
Example 2:
Example 3:
Constraints:
•
2485. Find the Pivot Integer
Topic: Math, Prefix Sum
Difficulty: Easy
Problem:
Given a positive integer
n, find the pivot integer x such that:• The sum of all elements between
1 and x inclusively equals the sum of all elements between x and n inclusively.Return the pivot integer
x. If no such integer exists, return -1. It is guaranteed that there will be at most one pivot index for the given input.Example 1:
Input: n = 8
Output: 6
Explanation: 6 is the pivot integer since: 1 + 2 + 3 + 4 + 5 + 6 = 6 + 7 + 8 = 21.
Example 2:
Input: n = 1
Output: 1
Explanation: 1 is the pivot integer since: 1 = 1.
Example 3:
Input: n = 4
Output: -1
Explanation: It can be proved that no such integer exist.
Constraints:
•
1 <= n <= 10002024-03-14
930. Binary Subarrays With Sum
Topic: Array, Hash Table, Sliding Window, Prefix Sum
Difficulty: Medium
Problem:
Given a binary array
A subarray is a contiguous part of the array.
Example 1:
Example 2:
Constraints:
•
•
•
930. Binary Subarrays With Sum
Topic: Array, Hash Table, Sliding Window, Prefix Sum
Difficulty: Medium
Problem:
Given a binary array
nums and an integer goal, return the number of non-empty subarrays with a sum goal.A subarray is a contiguous part of the array.
Example 1:
Input: nums = [1,0,1,0,1], goal = 2
Output: 4
Explanation: The 4 subarrays are bolded and underlined below:
[1,0,1,0,1]
[1,0,1,0,1]
[1,0,1,0,1]
[1,0,1,0,1]
Example 2:
Input: nums = [0,0,0,0,0], goal = 0
Output: 15
Constraints:
•
1 <= nums.length <= 3 * 10^4•
nums[i] is either 0 or 1.•
0 <= goal <= nums.length2024-03-15
238. Product of Array Except Self
Topic: Array, Prefix Sum
Difficulty: Medium
Problem:
Given an integer array
The product of any prefix or suffix of
You must write an algorithm that runs in
Example 1:
Example 2:
Constraints:
•
•
• The product of any prefix or suffix of
Follow up: Can you solve the problem in
238. Product of Array Except Self
Topic: Array, Prefix Sum
Difficulty: Medium
Problem:
Given an integer array
nums, return an array answer such that answer[i] is equal to the product of all the elements of nums except nums[i].The product of any prefix or suffix of
nums is guaranteed to fit in a 32-bit integer.You must write an algorithm that runs in
O(n) time and without using the division operation.Example 1:
Input: nums = [1,2,3,4]
Output: [24,12,8,6]
Example 2:
Input: nums = [-1,1,0,-3,3]
Output: [0,0,9,0,0]
Constraints:
•
2 <= nums.length <= 10^5•
-30 <= nums[i] <= 30• The product of any prefix or suffix of
nums is guaranteed to fit in a 32-bit integer.Follow up: Can you solve the problem in
O(1) extra space complexity? (The output array does not count as extra space for space complexity analysis.)2024-03-16
525. Contiguous Array
Topic: Array, Hash Table, Prefix Sum
Difficulty: Medium
Problem:
Given a binary array
Example 1:
Example 2:
Constraints:
•
•
525. Contiguous Array
Topic: Array, Hash Table, Prefix Sum
Difficulty: Medium
Problem:
Given a binary array
nums, return the maximum length of a contiguous subarray with an equal number of 0 and 1.Example 1:
Input: nums = [0,1]
Output: 2
Explanation: [0, 1] is the longest contiguous subarray with an equal number of 0 and 1.
Example 2:
Input: nums = [0,1,0]
Output: 2
Explanation: [0, 1] (or [1, 0]) is a longest contiguous subarray with equal number of 0 and 1.
Constraints:
•
1 <= nums.length <= 10^5•
nums[i] is either 0 or 1.2024-03-17
57. Insert Interval
Topic: Array
Difficulty: Medium
Problem:
You are given an array of non-overlapping intervals
Insert
Return
Note that you don't need to modify
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.Note that you don't need to modify
intervals in-place. You can make a new array and return it.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^52024-03-18
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 - 12024-03-19
621. Task Scheduler
Topic: Array, Hash Table, Greedy, Sorting, Heap (Priority Queue), Counting
Difficulty: Medium
Problem:
You are given an array of CPU
Return the minimum number of intervals required to complete all tasks.
Example 1:
Input: tasks = "A","A","A","B","B","B", n = 2
Output: 8
Explanation: A possible sequence is: A -> B -> idle -> A -> B -> idle -> A -> B.
After completing task A, you must wait two cycles before doing A again. The same applies to task B. In the 3^rd interval, neither A nor B can be done, so you idle. By the 4^th cycle, you can do A again as 2 intervals have passed.
Example 2:
Input: tasks = "A","C","A","B","D","B", n = 1
Output: 6
Explanation: A possible sequence is: A -> B -> C -> D -> A -> B.
With a cooling interval of 1, you can repeat a task after just one other task.
Example 3:
Input: tasks = "A","A","A", "B","B","B", n = 3
Output: 10
Explanation: A possible sequence is: A -> B -> idle -> idle -> A -> B -> idle -> idle -> A -> B.
There are only two types of tasks, A and B, which need to be separated by 3 intervals. This leads to idling twice between repetitions of these tasks.
Constraints:
•
•
•
621. Task Scheduler
Topic: Array, Hash Table, Greedy, Sorting, Heap (Priority Queue), Counting
Difficulty: Medium
Problem:
You are given an array of CPU
tasks, each represented by letters A to Z, and a cooling time, n. Each cycle or interval allows the completion of one task. Tasks can be completed in any order, but there's a constraint: identical tasks must be separated by at least n intervals due to cooling time.Return the minimum number of intervals required to complete all tasks.
Example 1:
Input: tasks = "A","A","A","B","B","B", n = 2
Output: 8
Explanation: A possible sequence is: A -> B -> idle -> A -> B -> idle -> A -> B.
After completing task A, you must wait two cycles before doing A again. The same applies to task B. In the 3^rd interval, neither A nor B can be done, so you idle. By the 4^th cycle, you can do A again as 2 intervals have passed.
Example 2:
Input: tasks = "A","C","A","B","D","B", n = 1
Output: 6
Explanation: A possible sequence is: A -> B -> C -> D -> A -> B.
With a cooling interval of 1, you can repeat a task after just one other task.
Example 3:
Input: tasks = "A","A","A", "B","B","B", n = 3
Output: 10
Explanation: A possible sequence is: A -> B -> idle -> idle -> A -> B -> idle -> idle -> A -> B.
There are only two types of tasks, A and B, which need to be separated by 3 intervals. This leads to idling twice between repetitions of these tasks.
Constraints:
•
1 <= tasks.length <= 10^4•
tasks[i] is an uppercase English letter.•
0 <= n <= 1002024-03-20
1669. Merge In Between Linked Lists
Topic: Linked List
Difficulty: Medium
Problem:
You are given two linked lists:
Remove
The blue edges and nodes in the following figure indicate the result:
Image: https://assets.leetcode.com/uploads/2020/11/05/fig1.png
Build the result list and return its head.
Example 1:
Image: https://assets.leetcode.com/uploads/2024/03/01/ll.png
Example 2:
Image: https://assets.leetcode.com/uploads/2020/11/05/merge_linked_list_ex2.png
Constraints:
•
•
•
1669. Merge In Between Linked Lists
Topic: Linked List
Difficulty: Medium
Problem:
You are given two linked lists:
list1 and list2 of sizes n and m respectively.Remove
list1's nodes from the a^th node to the b^th node, and put list2 in their place.The blue edges and nodes in the following figure indicate the result:
Image: https://assets.leetcode.com/uploads/2020/11/05/fig1.png
Build the result list and return its head.
Example 1:
Image: https://assets.leetcode.com/uploads/2024/03/01/ll.png
Input: list1 = [10,1,13,6,9,5], a = 3, b = 4, list2 = [1000000,1000001,1000002]
Output: [10,1,13,1000000,1000001,1000002,5]
Explanation: We remove the nodes 3 and 4 and put the entire list2 in their place. The blue edges and nodes in the above figure indicate the result.
Example 2:
Image: https://assets.leetcode.com/uploads/2020/11/05/merge_linked_list_ex2.png
Input: list1 = [0,1,2,3,4,5,6], a = 2, b = 5, list2 = [1000000,1000001,1000002,1000003,1000004]
Output: [0,1,1000000,1000001,1000002,1000003,1000004,6]
Explanation: The blue edges and nodes in the above figure indicate the result.
Constraints:
•
3 <= list1.length <= 10^4•
1 <= a <= b < list1.length - 1•
1 <= list2.length <= 10^42024-03-21
206. Reverse Linked List
Topic: Linked List, Recursion
Difficulty: Easy
Problem:
Given the
Example 1:
Image: https://assets.leetcode.com/uploads/2021/02/19/rev1ex1.jpg
Example 2:
Image: https://assets.leetcode.com/uploads/2021/02/19/rev1ex2.jpg
Example 3:
Constraints:
• The number of nodes in the list is the range
•
Follow up: A linked list can be reversed either iteratively or recursively. Could you implement both?
206. Reverse Linked List
Topic: Linked List, Recursion
Difficulty: Easy
Problem:
Given the
head of a singly linked list, reverse the list, and return the reversed list.Example 1:
Image: https://assets.leetcode.com/uploads/2021/02/19/rev1ex1.jpg
Input: head = [1,2,3,4,5]
Output: [5,4,3,2,1]
Example 2:
Image: https://assets.leetcode.com/uploads/2021/02/19/rev1ex2.jpg
Input: head = [1,2]
Output: [2,1]
Example 3:
Input: head = []
Output: []
Constraints:
• The number of nodes in the list is the range
[0, 5000].•
-5000 <= Node.val <= 5000Follow up: A linked list can be reversed either iteratively or recursively. Could you implement both?
2024-03-22
234. Palindrome Linked List
Topic: Linked List, Two Pointers, Stack, Recursion
Difficulty: Easy
Problem:
Given the
Example 1:
Image: https://assets.leetcode.com/uploads/2021/03/03/pal1linked-list.jpg
Example 2:
Image: https://assets.leetcode.com/uploads/2021/03/03/pal2linked-list.jpg
Constraints:
• The number of nodes in the list is in the range
•
Follow up: Could you do it in
234. Palindrome Linked List
Topic: Linked List, Two Pointers, Stack, Recursion
Difficulty: Easy
Problem:
Given the
head of a singly linked list, return true if it is a palindrome or false otherwise.Example 1:
Image: https://assets.leetcode.com/uploads/2021/03/03/pal1linked-list.jpg
Input: head = [1,2,2,1]
Output: true
Example 2:
Image: https://assets.leetcode.com/uploads/2021/03/03/pal2linked-list.jpg
Input: head = [1,2]
Output: false
Constraints:
• The number of nodes in the list is in the range
[1, 10^5].•
0 <= Node.val <= 9Follow up: Could you do it in
O(n) time and O(1) space?2024-03-23
143. Reorder List
Topic: Linked List, Two Pointers, Stack, Recursion
Difficulty: Medium
Problem:
You are given the head of a singly linked-list. The list can be represented as:
Reorder the list to be on the following form:
You may not modify the values in the list's nodes. Only nodes themselves may be changed.
Example 1:
Image: https://assets.leetcode.com/uploads/2021/03/04/reorder1linked-list.jpg
Example 2:
Image: https://assets.leetcode.com/uploads/2021/03/09/reorder2-linked-list.jpg
Constraints:
• The number of nodes in the list is in the range
•
143. Reorder List
Topic: Linked List, Two Pointers, Stack, Recursion
Difficulty: Medium
Problem:
You are given the head of a singly linked-list. The list can be represented as:
L_0 → L_1 → … → L_n - 1 → L_n
Reorder the list to be on the following form:
L_0 → L_n → L_1 → L_n - 1 → L_2 → L_n - 2 → …
You may not modify the values in the list's nodes. Only nodes themselves may be changed.
Example 1:
Image: https://assets.leetcode.com/uploads/2021/03/04/reorder1linked-list.jpg
Input: head = [1,2,3,4]
Output: [1,4,2,3]
Example 2:
Image: https://assets.leetcode.com/uploads/2021/03/09/reorder2-linked-list.jpg
Input: head = [1,2,3,4,5]
Output: [1,5,2,4,3]
Constraints:
• The number of nodes in the list is in the range
[1, 5 * 10^4].•
1 <= Node.val <= 10002024-03-24
287. Find the Duplicate Number
Topic: Array, Two Pointers, Binary Search, Bit Manipulation
Difficulty: Medium
Problem:
Given an array of integers
There is only one repeated number in
You must solve the problem without modifying the array
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
• All the integers in
Follow up:
• How can we prove that at least one duplicate number must exist in
• Can you solve the problem in linear runtime complexity?
287. Find the Duplicate Number
Topic: Array, Two Pointers, Binary Search, Bit Manipulation
Difficulty: Medium
Problem:
Given an array of integers
nums containing n + 1 integers where each integer is in the range [1, n] inclusive.There is only one repeated number in
nums, return this repeated number.You must solve the problem without modifying the array
nums and uses only constant extra space.Example 1:
Input: nums = [1,3,4,2,2]
Output: 2
Example 2:
Input: nums = [3,1,3,4,2]
Output: 3
Example 3:
Input: nums = [3,3,3,3,3]
Output: 3
Constraints:
•
1 <= n <= 10^5•
nums.length == n + 1•
1 <= nums[i] <= n• All the integers in
nums appear only once except for precisely one integer which appears two or more times.Follow up:
• How can we prove that at least one duplicate number must exist in
nums?• Can you solve the problem in linear runtime complexity?
2024-03-25
442. Find All Duplicates in an Array
Topic: Array, Hash Table
Difficulty: Medium
Problem:
Given an integer array
You must write an algorithm that runs in
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
• Each element in
442. Find All Duplicates in an Array
Topic: Array, Hash Table
Difficulty: Medium
Problem:
Given an integer array
nums of length n where all the integers of nums are in the range [1, n] and each integer appears once or twice, return an array of all the integers that appears twice.You must write an algorithm that runs in
O(n)time and uses only constant extra space.Example 1:
Input: nums = [4,3,2,7,8,2,3,1]
Output: [2,3]
Example 2:
Input: nums = [1,1,2]
Output: [1]
Example 3:
Input: nums = [1]
Output: []
Constraints:
•
n == nums.length•
1 <= n <= 10^5•
1 <= nums[i] <= n• Each element in
nums appears once or twice.2024-03-26
41. First Missing Positive
Topic: Array, Hash Table
Difficulty: Hard
Problem:
Given an unsorted integer array
You must implement an algorithm that runs in
Example 1:
Example 2:
Example 3:
Constraints:
•
•
41. First Missing Positive
Topic: Array, Hash Table
Difficulty: Hard
Problem:
Given an unsorted integer array
nums. Return the smallest positive integer that is not present in nums.You must implement an algorithm that runs in
O(n) time and uses O(1) auxiliary space.Example 1:
Input: nums = [1,2,0]
Output: 3
Explanation: The numbers in the range [1,2] are all in the array.
Example 2:
Input: nums = [3,4,-1,1]
Output: 2
Explanation: 1 is in the array but 2 is missing.
Example 3:
Input: nums = [7,8,9,11,12]
Output: 1
Explanation: The smallest positive integer 1 is missing.
Constraints:
•
1 <= nums.length <= 10^5•
-2^31 <= nums[i] <= 2^31 - 12024-03-27
713. Subarray Product Less Than K
Topic: Array, Sliding Window
Difficulty: Medium
Problem:
Given an array of integers
Example 1:
Example 2:
Constraints:
•
•
•
713. Subarray Product Less Than K
Topic: Array, Sliding Window
Difficulty: Medium
Problem:
Given an array of integers
nums and an integer k, return the number of contiguous subarrays where the product of all the elements in the subarray is strictly less than k.Example 1:
Input: nums = [10,5,2,6], k = 100
Output: 8
Explanation: The 8 subarrays that have product less than 100 are:
[10], [5], [2], [6], [10, 5], [5, 2], [2, 6], [5, 2, 6]
Note that [10, 5, 2] is not included as the product of 100 is not strictly less than k.
Example 2:
Input: nums = [1,2,3], k = 0
Output: 0
Constraints:
•
1 <= nums.length <= 3 * 10^4•
1 <= nums[i] <= 1000•
0 <= k <= 10^62024-03-28
2958. Length of Longest Subarray With at Most K Frequency
Topic: Array, Hash Table, Sliding Window
Difficulty: Medium
Problem:
You are given an integer array
The frequency of an element
An array is called good if the frequency of each element in this array is less than or equal to
Return the length of the longest good subarray of
A subarray is a contiguous non-empty sequence of elements within an array.
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
2958. Length of Longest Subarray With at Most K Frequency
Topic: Array, Hash Table, Sliding Window
Difficulty: Medium
Problem:
You are given an integer array
nums and an integer k.The frequency of an element
x is the number of times it occurs in an array.An array is called good if the frequency of each element in this array is less than or equal to
k.Return the length of the longest good subarray of
nums.A subarray is a contiguous non-empty sequence of elements within an array.
Example 1:
Input: nums = [1,2,3,1,2,3,1,2], k = 2
Output: 6
Explanation: The longest possible good subarray is [1,2,3,1,2,3] since the values 1, 2, and 3 occur at most twice in this subarray. Note that the subarrays [2,3,1,2,3,1] and [3,1,2,3,1,2] are also good.
It can be shown that there are no good subarrays with length more than 6.
Example 2:
Input: nums = [1,2,1,2,1,2,1,2], k = 1
Output: 2
Explanation: The longest possible good subarray is [1,2] since the values 1 and 2 occur at most once in this subarray. Note that the subarray [2,1] is also good.
It can be shown that there are no good subarrays with length more than 2.
Example 3:
Input: nums = [5,5,5,5,5,5,5], k = 4
Output: 4
Explanation: The longest possible good subarray is [5,5,5,5] since the value 5 occurs 4 times in this subarray.
It can be shown that there are no good subarrays with length more than 4.
Constraints:
•
1 <= nums.length <= 10^5•
1 <= nums[i] <= 10^9•
1 <= k <= nums.length2024-03-29
2962. Count Subarrays Where Max Element Appears at Least K Times
Topic: Array, Sliding Window
Difficulty: Medium
Problem:
You are given an integer array
Return the number of subarrays where the maximum element of
A subarray is a contiguous sequence of elements within an array.
Example 1:
Example 2:
Constraints:
•
•
•
2962. Count Subarrays Where Max Element Appears at Least K Times
Topic: Array, Sliding Window
Difficulty: Medium
Problem:
You are given an integer array
nums and a positive integer k.Return the number of subarrays where the maximum element of
nums appears at least k times in that subarray.A subarray is a contiguous sequence of elements within an array.
Example 1:
Input: nums = [1,3,2,3,3], k = 2
Output: 6
Explanation: The subarrays that contain the element 3 at least 2 times are: [1,3,2,3], [1,3,2,3,3], [3,2,3], [3,2,3,3], [2,3,3] and [3,3].
Example 2:
Input: nums = [1,4,2,1], k = 3
Output: 0
Explanation: No subarray contains the element 4 at least 3 times.
Constraints:
•
1 <= nums.length <= 10^5•
1 <= nums[i] <= 10^6•
1 <= k <= 10^5