2023-12-22
1422. Maximum Score After Splitting a String
Topic: String
Difficulty: Easy
Problem:
Given a string
The score after splitting a string is the number of zeros in the left substring plus the number of ones in the right substring.
Example 1:
Example 2:
Example 3:
Constraints:
•
• The string
1422. Maximum Score After Splitting a String
Topic: String
Difficulty: Easy
Problem:
Given a string
s of zeros and ones, return the maximum score after splitting the string into two non-empty substrings (i.e. left substring and right substring).The score after splitting a string is the number of zeros in the left substring plus the number of ones in the right substring.
Example 1:
Input: s = "011101"
Output: 5
Explanation:
All possible ways of splitting s into two non-empty substrings are:
left = "0" and right = "11101", score = 1 + 4 = 5
left = "01" and right = "1101", score = 1 + 3 = 4
left = "011" and right = "101", score = 1 + 2 = 3
left = "0111" and right = "01", score = 1 + 1 = 2
left = "01110" and right = "1", score = 2 + 1 = 3
Example 2:
Input: s = "00111"
Output: 5
Explanation: When left = "00" and right = "111", we get the maximum score = 2 + 3 = 5
Example 3:
Input: s = "1111"
Output: 3
Constraints:
•
2 <= s.length <= 500• The string
s consists of characters '0' and '1' only.2023-12-23
1496. Path Crossing
Topic: Hash Table, String
Difficulty: Easy
Problem:
Given a string
Return
Example 1:
Image: https://assets.leetcode.com/uploads/2020/06/10/screen-shot-2020-06-10-at-123929-pm.png
Example 2:
Image: https://assets.leetcode.com/uploads/2020/06/10/screen-shot-2020-06-10-at-123843-pm.png
Constraints:
•
•
1496. Path Crossing
Topic: Hash Table, String
Difficulty: Easy
Problem:
Given a string
path, where path[i] = 'N', 'S', 'E' or 'W', each representing moving one unit north, south, east, or west, respectively. You start at the origin (0, 0) on a 2D plane and walk on the path specified by path.Return
true if the path crosses itself at any point, that is, if at any time you are on a location you have previously visited. Return false otherwise.Example 1:
Image: https://assets.leetcode.com/uploads/2020/06/10/screen-shot-2020-06-10-at-123929-pm.png
Input: path = "NES"
Output: false
Explanation: Notice that the path doesn't cross any point more than once.
Example 2:
Image: https://assets.leetcode.com/uploads/2020/06/10/screen-shot-2020-06-10-at-123843-pm.png
Input: path = "NESWW"
Output: true
Explanation: Notice that the path visits the origin twice.
Constraints:
•
1 <= path.length <= 10^4•
path[i] is either 'N', 'S', 'E', or 'W'.2023-12-24
1758. Minimum Changes To Make Alternating Binary String
Topic: String
Difficulty: Easy
Problem:
You are given a string
The string is called alternating if no two adjacent characters are equal. For example, the string
Return the minimum number of operations needed to make
Example 1:
Example 2:
Example 3:
Constraints:
•
•
1758. Minimum Changes To Make Alternating Binary String
Topic: String
Difficulty: Easy
Problem:
You are given a string
s consisting only of the characters '0' and '1'. In one operation, you can change any '0' to '1' or vice versa.The string is called alternating if no two adjacent characters are equal. For example, the string
"010" is alternating, while the string "0100" is not.Return the minimum number of operations needed to make
s alternating.Example 1:
Input: s = "0100"
Output: 1
Explanation: If you change the last character to '1', s will be "0101", which is alternating.
Example 2:
Input: s = "10"
Output: 0
Explanation: s is already alternating.
Example 3:
Input: s = "1111"
Output: 2
Explanation: You need two operations to reach "0101" or "1010".
Constraints:
•
1 <= s.length <= 10^4•
s[i] is either '0' or '1'.2023-12-25
91. Decode Ways
Topic: String, Dynamic Programming
Difficulty: Medium
Problem:
A message containing letters from
To decode an encoded message, all the digits must be grouped then mapped back into letters using the reverse of the mapping above (there may be multiple ways). For example,
•
•
Note that the grouping
Given a string
The test cases are generated so that the answer fits in a 32-bit integer.
Example 1:
Example 2:
Example 3:
Constraints:
•
•
91. Decode Ways
Topic: String, Dynamic Programming
Difficulty: Medium
Problem:
A message containing letters from
A-Z can be encoded into numbers using the following mapping:'A' -> "1"
'B' -> "2"
...
'Z' -> "26"
To decode an encoded message, all the digits must be grouped then mapped back into letters using the reverse of the mapping above (there may be multiple ways). For example,
"11106" can be mapped into:•
"AAJF" with the grouping (1 1 10 6)•
"KJF" with the grouping (11 10 6)Note that the grouping
(1 11 06) is invalid because "06" cannot be mapped into 'F' since "6" is different from "06".Given a string
s containing only digits, return the number of ways to decode it.The test cases are generated so that the answer fits in a 32-bit integer.
Example 1:
Input: s = "12"
Output: 2
Explanation: "12" could be decoded as "AB" (1 2) or "L" (12).
Example 2:
Input: s = "226"
Output: 3
Explanation: "226" could be decoded as "BZ" (2 26), "VF" (22 6), or "BBF" (2 2 6).
Example 3:
Input: s = "06"
Output: 0
Explanation: "06" cannot be mapped to "F" because of the leading zero ("6" is different from "06").
Constraints:
•
1 <= s.length <= 100•
s contains only digits and may contain leading zero(s).2023-12-26
1155. Number of Dice Rolls With Target Sum
Topic: Dynamic Programming
Difficulty: Medium
Problem:
You have
Given three integers
Example 1:
Example 2:
Example 3:
Constraints:
•
•
1155. Number of Dice Rolls With Target Sum
Topic: Dynamic Programming
Difficulty: Medium
Problem:
You have
n dice, and each die has k faces numbered from 1 to k.Given three integers
n, k, and target, return the number of possible ways (out of the k^n total ways) to roll the dice, so the sum of the face-up numbers equals target. Since the answer may be too large, return it modulo 10^9 + 7.Example 1:
Input: n = 1, k = 6, target = 3
Output: 1
Explanation: You throw one die with 6 faces.
There is only one way to get a sum of 3.
Example 2:
Input: n = 2, k = 6, target = 7
Output: 6
Explanation: You throw two dice, each with 6 faces.
There are 6 ways to get a sum of 7: 1+6, 2+5, 3+4, 4+3, 5+2, 6+1.
Example 3:
Input: n = 30, k = 30, target = 500
Output: 222616187
Explanation: The answer must be returned modulo 10^9 + 7.
Constraints:
•
1 <= n, k <= 30•
1 <= target <= 10002023-12-27
1578. Minimum Time to Make Rope Colorful
Topic: Array, String, Dynamic Programming, Greedy
Difficulty: Medium
Problem:
Alice has
Alice wants the rope to be colorful. She does not want two consecutive balloons to be of the same color, so she asks Bob for help. Bob can remove some balloons from the rope to make it colorful. You are given a 0-indexed integer array
Return the minimum time Bob needs to make the rope colorful.
Example 1:
Image: https://assets.leetcode.com/uploads/2021/12/13/ballon1.jpg
Example 2:
Image: https://assets.leetcode.com/uploads/2021/12/13/balloon2.jpg
Example 3:
Image: https://assets.leetcode.com/uploads/2021/12/13/balloon3.jpg
Constraints:
•
•
•
•
1578. Minimum Time to Make Rope Colorful
Topic: Array, String, Dynamic Programming, Greedy
Difficulty: Medium
Problem:
Alice has
n balloons arranged on a rope. You are given a 0-indexed string colors where colors[i] is the color of the i^th balloon.Alice wants the rope to be colorful. She does not want two consecutive balloons to be of the same color, so she asks Bob for help. Bob can remove some balloons from the rope to make it colorful. You are given a 0-indexed integer array
neededTime where neededTime[i] is the time (in seconds) that Bob needs to remove the i^th balloon from the rope.Return the minimum time Bob needs to make the rope colorful.
Example 1:
Image: https://assets.leetcode.com/uploads/2021/12/13/ballon1.jpg
Input: colors = "abaac", neededTime = [1,2,3,4,5]
Output: 3
Explanation: In the above image, 'a' is blue, 'b' is red, and 'c' is green.
Bob can remove the blue balloon at index 2. This takes 3 seconds.
There are no longer two consecutive balloons of the same color. Total time = 3.
Example 2:
Image: https://assets.leetcode.com/uploads/2021/12/13/balloon2.jpg
Input: colors = "abc", neededTime = [1,2,3]
Output: 0
Explanation: The rope is already colorful. Bob does not need to remove any balloons from the rope.
Example 3:
Image: https://assets.leetcode.com/uploads/2021/12/13/balloon3.jpg
Input: colors = "aabaa", neededTime = [1,2,3,4,1]
Output: 2
Explanation: Bob will remove the ballons at indices 0 and 4. Each ballon takes 1 second to remove.
There are no longer two consecutive balloons of the same color. Total time = 1 + 1 = 2.
Constraints:
•
n == colors.length == neededTime.length•
1 <= n <= 10^5•
1 <= neededTime[i] <= 10^4•
colors contains only lowercase English letters.2023-12-29
1335. Minimum Difficulty of a Job Schedule
Topic: Array, Dynamic Programming
Difficulty: Hard
Problem:
You want to schedule a list of jobs in
You have to finish at least one task every day. The difficulty of a job schedule is the sum of difficulties of each day of the
You are given an integer array
Return the minimum difficulty of a job schedule. If you cannot find a schedule for the jobs return
Example 1:
Image: https://assets.leetcode.com/uploads/2020/01/16/untitled.png
Example 2:
Example 3:
Constraints:
•
•
•
1335. Minimum Difficulty of a Job Schedule
Topic: Array, Dynamic Programming
Difficulty: Hard
Problem:
You want to schedule a list of jobs in
d days. Jobs are dependent (i.e To work on the i^th job, you have to finish all the jobs j where 0 <= j < i).You have to finish at least one task every day. The difficulty of a job schedule is the sum of difficulties of each day of the
d days. The difficulty of a day is the maximum difficulty of a job done on that day.You are given an integer array
jobDifficulty and an integer d. The difficulty of the i^th job is jobDifficulty[i].Return the minimum difficulty of a job schedule. If you cannot find a schedule for the jobs return
-1.Example 1:
Image: https://assets.leetcode.com/uploads/2020/01/16/untitled.png
Input: jobDifficulty = [6,5,4,3,2,1], d = 2
Output: 7
Explanation: First day you can finish the first 5 jobs, total difficulty = 6.
Second day you can finish the last job, total difficulty = 1.
The difficulty of the schedule = 6 + 1 = 7
Example 2:
Input: jobDifficulty = [9,9,9], d = 4
Output: -1
Explanation: If you finish a job per day you will still have a free day. you cannot find a schedule for the given jobs.
Example 3:
Input: jobDifficulty = [1,1,1], d = 3
Output: 3
Explanation: The schedule is one job per day. total difficulty will be 3.
Constraints:
•
1 <= jobDifficulty.length <= 300•
0 <= jobDifficulty[i] <= 1000•
1 <= d <= 102023-12-30
1897. Redistribute Characters to Make All Strings Equal
Topic: Hash Table, String, Counting
Difficulty: Easy
Problem:
You are given an array of strings
In one operation, pick two distinct indices
Return
Example 1:
Example 2:
Constraints:
•
•
•
1897. Redistribute Characters to Make All Strings Equal
Topic: Hash Table, String, Counting
Difficulty: Easy
Problem:
You are given an array of strings
words (0-indexed).In one operation, pick two distinct indices
i and j, where words[i] is a non-empty string, and move any character from words[i] to any position in words[j].Return
true if you can make every string in words equal using any number of operations, and false otherwise.Example 1:
Input: words = ["abc","aabc","bc"]
Output: true
Explanation: Move the first 'a' in words[1] to the front of words[2],
to make words[1] = "abc" and words[2] = "abc".
All the strings are now equal to "abc", so return true.
Example 2:
Input: words = ["ab","a"]
Output: false
Explanation: It is impossible to make all the strings equal using the operation.
Constraints:
•
1 <= words.length <= 100•
1 <= words[i].length <= 100•
words[i] consists of lowercase English letters.2023-12-31
1624. Largest Substring Between Two Equal Characters
Topic: Hash Table, String
Difficulty: Easy
Problem:
Given a string
A substring is a contiguous sequence of characters within a string.
Example 1:
Example 2:
Example 3:
Constraints:
•
•
1624. Largest Substring Between Two Equal Characters
Topic: Hash Table, String
Difficulty: Easy
Problem:
Given a string
s, return the length of the longest substring between two equal characters, excluding the two characters. If there is no such substring return -1.A substring is a contiguous sequence of characters within a string.
Example 1:
Input: s = "aa"
Output: 0
Explanation: The optimal substring here is an empty substring between the two 'a's.
Example 2:
Input: s = "abca"
Output: 2
Explanation: The optimal substring here is "bc".
Example 3:
Input: s = "cbzxy"
Output: -1
Explanation: There are no characters that appear twice in s.
Constraints:
•
1 <= s.length <= 300•
s contains only lowercase English letters.2024-01-01
455. Assign Cookies
Topic: Array, Two Pointers, Greedy, Sorting
Difficulty: Easy
Problem:
Assume you are an awesome parent and want to give your children some cookies. But, you should give each child at most one cookie.
Each child
Example 1:
Example 2:
Constraints:
•
•
•
455. Assign Cookies
Topic: Array, Two Pointers, Greedy, Sorting
Difficulty: Easy
Problem:
Assume you are an awesome parent and want to give your children some cookies. But, you should give each child at most one cookie.
Each child
i has a greed factor g[i], which is the minimum size of a cookie that the child will be content with; and each cookie j has a size s[j]. If s[j] >= g[i], we can assign the cookie j to the child i, and the child i will be content. Your goal is to maximize the number of your content children and output the maximum number.Example 1:
Input: g = [1,2,3], s = [1,1]
Output: 1
Explanation: You have 3 children and 2 cookies. The greed factors of 3 children are 1, 2, 3.
And even though you have 2 cookies, since their size is both 1, you could only make the child whose greed factor is 1 content.
You need to output 1.
Example 2:
Input: g = [1,2], s = [1,2,3]
Output: 2
Explanation: You have 2 children and 3 cookies. The greed factors of 2 children are 1, 2.
You have 3 cookies and their sizes are big enough to gratify all of the children,
You need to output 2.
Constraints:
•
1 <= g.length <= 3 * 10^4•
0 <= s.length <= 3 * 10^4•
1 <= g[i], s[j] <= 2^31 - 12024-01-02
2610. Convert an Array Into a 2D Array With Conditions
Topic: Array, Hash Table
Difficulty: Medium
Problem:
You are given an integer array
• The 2D array should contain only the elements of the array
• Each row in the 2D array contains distinct integers.
• The number of rows in the 2D array should be minimal.
Return the resulting array. If there are multiple answers, return any of them.
Note that the 2D array can have a different number of elements on each row.
Example 1:
Example 2:
Constraints:
•
•
2610. Convert an Array Into a 2D Array With Conditions
Topic: Array, Hash Table
Difficulty: Medium
Problem:
You are given an integer array
nums. You need to create a 2D array from nums satisfying the following conditions:• The 2D array should contain only the elements of the array
nums.• Each row in the 2D array contains distinct integers.
• The number of rows in the 2D array should be minimal.
Return the resulting array. If there are multiple answers, return any of them.
Note that the 2D array can have a different number of elements on each row.
Example 1:
Input: nums = [1,3,4,1,2,3,1]
Output: [[1,3,4,2],[1,3],[1]]
Explanation: We can create a 2D array that contains the following rows:
- 1,3,4,2
- 1,3
- 1
All elements of nums were used, and each row of the 2D array contains distinct integers, so it is a valid answer.
It can be shown that we cannot have less than 3 rows in a valid array.
Example 2:
Input: nums = [1,2,3,4]
Output: [[4,3,2,1]]
Explanation: All elements of the array are distinct, so we can keep all of them in the first row of the 2D array.
Constraints:
•
1 <= nums.length <= 200•
1 <= nums[i] <= nums.length2024-01-03
2125. Number of Laser Beams in a Bank
Topic: Array, Math, String, Matrix
Difficulty: Medium
Problem:
Anti-theft security devices are activated inside a bank. You are given a 0-indexed binary string array
There is one laser beam between any two security devices if both conditions are met:
• The two devices are located on two different rows:
• For each row
Laser beams are independent, i.e., one beam does not interfere nor join with another.
Return the total number of laser beams in the bank.
Example 1:
Image: https://assets.leetcode.com/uploads/2021/12/24/laser1.jpg
Example 2:
Image: https://assets.leetcode.com/uploads/2021/12/24/laser2.jpg
Constraints:
•
•
•
•
2125. Number of Laser Beams in a Bank
Topic: Array, Math, String, Matrix
Difficulty: Medium
Problem:
Anti-theft security devices are activated inside a bank. You are given a 0-indexed binary string array
bank representing the floor plan of the bank, which is an m x n 2D matrix. bank[i] represents the i^th row, consisting of '0's and '1's. '0' means the cell is empty, while'1' means the cell has a security device.There is one laser beam between any two security devices if both conditions are met:
• The two devices are located on two different rows:
r_1 and r_2, where r_1 < r_2.• For each row
i where r_1 < i < r_2, there are no security devices in the i^th row.Laser beams are independent, i.e., one beam does not interfere nor join with another.
Return the total number of laser beams in the bank.
Example 1:
Image: https://assets.leetcode.com/uploads/2021/12/24/laser1.jpg
Input: bank = ["011001","000000","010100","001000"]
Output: 8
Explanation: Between each of the following device pairs, there is one beam. In total, there are 8 beams:
* bank[0][1] -- bank[2][1]
* bank[0][1] -- bank[2][3]
* bank[0][2] -- bank[2][1]
* bank[0][2] -- bank[2][3]
* bank[0][5] -- bank[2][1]
* bank[0][5] -- bank[2][3]
* bank[2][1] -- bank[3][2]
* bank[2][3] -- bank[3][2]
Note that there is no beam between any device on the 0^th row with any on the 3^rd row.
This is because the 2^nd row contains security devices, which breaks the second condition.
Example 2:
Image: https://assets.leetcode.com/uploads/2021/12/24/laser2.jpg
Input: bank = ["000","111","000"]
Output: 0
Explanation: There does not exist two devices located on two different rows.
Constraints:
•
m == bank.length•
n == bank[i].length•
1 <= m, n <= 500•
bank[i][j] is either '0' or '1'.2024-01-04
2870. Minimum Number of Operations to Make Array Empty
Topic: Array, Hash Table, Greedy, Counting
Difficulty: Medium
Problem:
You are given a 0-indexed array
There are two types of operations that you can apply on the array any number of times:
• Choose two elements with equal values and delete them from the array.
• Choose three elements with equal values and delete them from the array.
Return the minimum number of operations required to make the array empty, or
Example 1:
Example 2:
Constraints:
•
•
2870. Minimum Number of Operations to Make Array Empty
Topic: Array, Hash Table, Greedy, Counting
Difficulty: Medium
Problem:
You are given a 0-indexed array
nums consisting of positive integers.There are two types of operations that you can apply on the array any number of times:
• Choose two elements with equal values and delete them from the array.
• Choose three elements with equal values and delete them from the array.
Return the minimum number of operations required to make the array empty, or
-1 if it is not possible.Example 1:
Input: nums = [2,3,3,2,2,4,2,3,4]
Output: 4
Explanation: We can apply the following operations to make the array empty:
- Apply the first operation on the elements at indices 0 and 3. The resulting array is nums = [3,3,2,4,2,3,4].
- Apply the first operation on the elements at indices 2 and 4. The resulting array is nums = [3,3,4,3,4].
- Apply the second operation on the elements at indices 0, 1, and 3. The resulting array is nums = [4,4].
- Apply the first operation on the elements at indices 0 and 1. The resulting array is nums = [].
It can be shown that we cannot make the array empty in less than 4 operations.
Example 2:
Input: nums = [2,1,2,2,3,3]
Output: -1
Explanation: It is impossible to empty the array.
Constraints:
•
2 <= nums.length <= 10^5•
1 <= nums[i] <= 10^62024-01-05
300. Longest Increasing Subsequence
Topic: Array, Binary Search, Dynamic Programming
Difficulty: Medium
Problem:
Given an integer array
Example 1:
Example 2:
Example 3:
Constraints:
•
•
Follow up: Can you come up with an algorithm that runs in
300. Longest Increasing Subsequence
Topic: Array, Binary Search, Dynamic Programming
Difficulty: Medium
Problem:
Given an integer array
nums, return the length of the longest strictly increasing subsequence.Example 1:
Input: nums = [10,9,2,5,3,7,101,18]
Output: 4
Explanation: The longest increasing subsequence is [2,3,7,101], therefore the length is 4.
Example 2:
Input: nums = [0,1,0,3,2,3]
Output: 4
Example 3:
Input: nums = [7,7,7,7,7,7,7]
Output: 1
Constraints:
•
1 <= nums.length <= 2500•
-10^4 <= nums[i] <= 10^4Follow up: Can you come up with an algorithm that runs in
O(n log(n)) time complexity?2024-01-06
1235. Maximum Profit in Job Scheduling
Topic: Array, Binary Search, Dynamic Programming, Sorting
Difficulty: Hard
Problem:
We have
You're given the
If you choose a job that ends at time
Example 1:
Image: https://assets.leetcode.com/uploads/2019/10/10/sample1_1584.png
Example 2:
Image: https://assets.leetcode.com/uploads/2019/10/10/sample22_1584.png
Example 3:
Image: https://assets.leetcode.com/uploads/2019/10/10/sample3_1584.png
Constraints:
•
•
•
1235. Maximum Profit in Job Scheduling
Topic: Array, Binary Search, Dynamic Programming, Sorting
Difficulty: Hard
Problem:
We have
n jobs, where every job is scheduled to be done from startTime[i] to endTime[i], obtaining a profit of profit[i].You're given the
startTime, endTime and profit arrays, return the maximum profit you can take such that there are no two jobs in the subset with overlapping time range.If you choose a job that ends at time
X you will be able to start another job that starts at time X.Example 1:
Image: https://assets.leetcode.com/uploads/2019/10/10/sample1_1584.png
Input: startTime = [1,2,3,3], endTime = [3,4,5,6], profit = [50,10,40,70]
Output: 120
Explanation: The subset chosen is the first and fourth job.
Time range [1-3]+[3-6] , we get profit of 120 = 50 + 70.
Example 2:
Image: https://assets.leetcode.com/uploads/2019/10/10/sample22_1584.png
Input: startTime = [1,2,3,4,6], endTime = [3,5,10,6,9], profit = [20,20,100,70,60]
Output: 150
Explanation: The subset chosen is the first, fourth and fifth job.
Profit obtained 150 = 20 + 70 + 60.
Example 3:
Image: https://assets.leetcode.com/uploads/2019/10/10/sample3_1584.png
Input: startTime = [1,1,1], endTime = [2,3,4], profit = [5,6,4]
Output: 6
Constraints:
•
1 <= startTime.length == endTime.length == profit.length <= 5 * 10^4•
1 <= startTime[i] < endTime[i] <= 10^9•
1 <= profit[i] <= 10^42024-01-07
446. Arithmetic Slices II - Subsequence
Topic: Array, Dynamic Programming
Difficulty: Hard
Problem:
Given an integer array
A sequence of numbers is called arithmetic if it consists of at least three elements and if the difference between any two consecutive elements is the same.
• For example,
• For example,
A subsequence of an array is a sequence that can be formed by removing some elements (possibly none) of the array.
• For example,
The test cases are generated so that the answer fits in 32-bit integer.
Example 1:
Example 2:
Constraints:
•
•
446. Arithmetic Slices II - Subsequence
Topic: Array, Dynamic Programming
Difficulty: Hard
Problem:
Given an integer array
nums, return the number of all the arithmetic subsequences of nums.A sequence of numbers is called arithmetic if it consists of at least three elements and if the difference between any two consecutive elements is the same.
• For example,
[1, 3, 5, 7, 9], [7, 7, 7, 7], and [3, -1, -5, -9] are arithmetic sequences.• For example,
[1, 1, 2, 5, 7] is not an arithmetic sequence.A subsequence of an array is a sequence that can be formed by removing some elements (possibly none) of the array.
• For example,
[2,5,10] is a subsequence of [1,2,1,2,4,1,5,10].The test cases are generated so that the answer fits in 32-bit integer.
Example 1:
Input: nums = [2,4,6,8,10]
Output: 7
Explanation: All arithmetic subsequence slices are:
[2,4,6]
[4,6,8]
[6,8,10]
[2,4,6,8]
[4,6,8,10]
[2,4,6,8,10]
[2,6,10]
Example 2:
Input: nums = [7,7,7,7,7]
Output: 16
Explanation: Any subsequence of this array is arithmetic.
Constraints:
•
1 <= nums.length <= 1000•
-2^31 <= nums[i] <= 2^31 - 12024-01-08
938. Range Sum of BST
Topic: Tree, Depth-First Search, Binary Search Tree, Binary Tree
Difficulty: Easy
Problem:
Given the
Example 1:
Image: https://assets.leetcode.com/uploads/2020/11/05/bst1.jpg
Example 2:
Image: https://assets.leetcode.com/uploads/2020/11/05/bst2.jpg
Constraints:
• The number of nodes in the tree is in the range
•
•
• All
938. Range Sum of BST
Topic: Tree, Depth-First Search, Binary Search Tree, Binary Tree
Difficulty: Easy
Problem:
Given the
root node of a binary search tree and two integers low and high, return the sum of values of all nodes with a value in the inclusive range [low, high].Example 1:
Image: https://assets.leetcode.com/uploads/2020/11/05/bst1.jpg
Input: root = [10,5,15,3,7,null,18], low = 7, high = 15
Output: 32
Explanation: Nodes 7, 10, and 15 are in the range [7, 15]. 7 + 10 + 15 = 32.
Example 2:
Image: https://assets.leetcode.com/uploads/2020/11/05/bst2.jpg
Input: root = [10,5,15,3,7,13,18,1,null,6], low = 6, high = 10
Output: 23
Explanation: Nodes 6, 7, and 10 are in the range [6, 10]. 6 + 7 + 10 = 23.
Constraints:
• The number of nodes in the tree is in the range
[1, 2 * 10^4].•
1 <= Node.val <= 10^5•
1 <= low <= high <= 10^5• All
Node.val are unique.2024-01-09
872. Leaf-Similar Trees
Topic: Tree, Depth-First Search, Binary Tree
Difficulty: Easy
Problem:
Consider all the leaves of a binary tree, from left to right order, the values of those leaves form a leaf value sequence.
Image: https://s3-lc-upload.s3.amazonaws.com/uploads/2018/07/16/tree.png
For example, in the given tree above, the leaf value sequence is
Two binary trees are considered leaf-similar if their leaf value sequence is the same.
Return
Example 1:
Image: https://assets.leetcode.com/uploads/2020/09/03/leaf-similar-1.jpg
Example 2:
Image: https://assets.leetcode.com/uploads/2020/09/03/leaf-similar-2.jpg
Constraints:
• The number of nodes in each tree will be in the range
• Both of the given trees will have values in the range
872. Leaf-Similar Trees
Topic: Tree, Depth-First Search, Binary Tree
Difficulty: Easy
Problem:
Consider all the leaves of a binary tree, from left to right order, the values of those leaves form a leaf value sequence.
Image: https://s3-lc-upload.s3.amazonaws.com/uploads/2018/07/16/tree.png
For example, in the given tree above, the leaf value sequence is
(6, 7, 4, 9, 8).Two binary trees are considered leaf-similar if their leaf value sequence is the same.
Return
true if and only if the two given trees with head nodes root1 and root2 are leaf-similar.Example 1:
Image: https://assets.leetcode.com/uploads/2020/09/03/leaf-similar-1.jpg
Input: root1 = [3,5,1,6,2,9,8,null,null,7,4], root2 = [3,5,1,6,7,4,2,null,null,null,null,null,null,9,8]
Output: true
Example 2:
Image: https://assets.leetcode.com/uploads/2020/09/03/leaf-similar-2.jpg
Input: root1 = [1,2,3], root2 = [1,3,2]
Output: false
Constraints:
• The number of nodes in each tree will be in the range
[1, 200].• Both of the given trees will have values in the range
[0, 200].2024-01-10
2385. Amount of Time for Binary Tree to Be Infected
Topic: Tree, Depth-First Search, Breadth-First Search, Binary Tree
Difficulty: Medium
Problem:
You are given the
Each minute, a node becomes infected if:
• The node is currently uninfected.
• The node is adjacent to an infected node.
Return the number of minutes needed for the entire tree to be infected.
Example 1:
Image: https://assets.leetcode.com/uploads/2022/06/25/image-20220625231744-1.png
Example 2:
Image: https://assets.leetcode.com/uploads/2022/06/25/image-20220625231812-2.png
Constraints:
• The number of nodes in the tree is in the range
•
• Each node has a unique value.
• A node with a value of
2385. Amount of Time for Binary Tree to Be Infected
Topic: Tree, Depth-First Search, Breadth-First Search, Binary Tree
Difficulty: Medium
Problem:
You are given the
root of a binary tree with unique values, and an integer start. At minute 0, an infection starts from the node with value start.Each minute, a node becomes infected if:
• The node is currently uninfected.
• The node is adjacent to an infected node.
Return the number of minutes needed for the entire tree to be infected.
Example 1:
Image: https://assets.leetcode.com/uploads/2022/06/25/image-20220625231744-1.png
Input: root = [1,5,3,null,4,10,6,9,2], start = 3
Output: 4
Explanation: The following nodes are infected during:
- Minute 0: Node 3
- Minute 1: Nodes 1, 10 and 6
- Minute 2: Node 5
- Minute 3: Node 4
- Minute 4: Nodes 9 and 2
It takes 4 minutes for the whole tree to be infected so we return 4.
Example 2:
Image: https://assets.leetcode.com/uploads/2022/06/25/image-20220625231812-2.png
Input: root = [1], start = 1
Output: 0
Explanation: At minute 0, the only node in the tree is infected so we return 0.
Constraints:
• The number of nodes in the tree is in the range
[1, 10^5].•
1 <= Node.val <= 10^5• Each node has a unique value.
• A node with a value of
start exists in the tree.2024-01-11
1026. Maximum Difference Between Node and Ancestor
Topic: Tree, Depth-First Search, Binary Tree
Difficulty: Medium
Problem:
Given the
A node
Example 1:
Image: https://assets.leetcode.com/uploads/2020/11/09/tmp-tree.jpg
Example 2:
Image: https://assets.leetcode.com/uploads/2020/11/09/tmp-tree-1.jpg
Constraints:
• The number of nodes in the tree is in the range
•
1026. Maximum Difference Between Node and Ancestor
Topic: Tree, Depth-First Search, Binary Tree
Difficulty: Medium
Problem:
Given the
root of a binary tree, find the maximum value v for which there exist different nodes a and b where v = |a.val - b.val| and a is an ancestor of b.A node
a is an ancestor of b if either: any child of a is equal to b or any child of a is an ancestor of b.Example 1:
Image: https://assets.leetcode.com/uploads/2020/11/09/tmp-tree.jpg
Input: root = [8,3,10,1,6,null,14,null,null,4,7,13]
Output: 7
Explanation: We have various ancestor-node differences, some of which are given below :
|8 - 3| = 5
|3 - 7| = 4
|8 - 1| = 7
|10 - 13| = 3
Among all possible differences, the maximum value of 7 is obtained by |8 - 1| = 7.
Example 2:
Image: https://assets.leetcode.com/uploads/2020/11/09/tmp-tree-1.jpg
Input: root = [1,null,2,null,0,3]
Output: 3
Constraints:
• The number of nodes in the tree is in the range
[2, 5000].•
0 <= Node.val <= 10^5