2022-02-08
258. Add Digits
Topic: Math, Simulation, Number Theory
Difficulty: Easy
Problem:
Given an integer
Example 1:
Example 2:
Constraints:
•
Follow up: Could you do it without any loop/recursion in
258. Add Digits
Topic: Math, Simulation, Number Theory
Difficulty: Easy
Problem:
Given an integer
num, repeatedly add all its digits until the result has only one digit, and return it.Example 1:
Input: num = 38
Output: 2
Explanation: The process is
38 --> 3 + 8 --> 11
11 --> 1 + 1 --> 2
Since 2 has only one digit, return it.
Example 2:
Input: num = 0
Output: 0
Constraints:
•
0 <= num <= 2^31 - 1Follow up: Could you do it without any loop/recursion in
O(1) runtime?2022-02-09
532. K-diff Pairs in an Array
Topic: Array, Hash Table, Two Pointers, Binary Search, Sorting
Difficulty: Medium
Problem:
Given an array of integers
A k-diff pair is an integer pair
•
•
Notice that
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
532. K-diff Pairs in an Array
Topic: Array, Hash Table, Two Pointers, Binary Search, Sorting
Difficulty: Medium
Problem:
Given an array of integers
nums and an integer k, return the number of unique k-diff pairs in the array.A k-diff pair is an integer pair
(nums[i], nums[j]), where the following are true:•
0 <= i < j < nums.length•
|nums[i] - nums[j]| == kNotice that
|val| denotes the absolute value of val.Example 1:
Input: nums = [3,1,4,1,5], k = 2
Output: 2
Explanation: There are two 2-diff pairs in the array, (1, 3) and (3, 5).
Although we have two 1s in the input, we should only return the number of unique pairs.
Example 2:
Input: nums = [1,2,3,4,5], k = 1
Output: 4
Explanation: There are four 1-diff pairs in the array, (1, 2), (2, 3), (3, 4) and (4, 5).
Example 3:
Input: nums = [1,3,1,5,4], k = 0
Output: 1
Explanation: There is one 0-diff pair in the array, (1, 1).
Constraints:
•
1 <= nums.length <= 10^4•
-10^7 <= nums[i] <= 10^7•
0 <= k <= 10^72022-02-10
560. Subarray Sum Equals K
Topic: Array, Hash Table, Prefix Sum
Difficulty: Medium
Problem:
Given an array of integers
Example 1:
Example 2:
Constraints:
•
•
•
560. Subarray Sum Equals K
Topic: Array, Hash Table, Prefix Sum
Difficulty: Medium
Problem:
Given an array of integers
nums and an integer k, return the total number of continuous subarrays whose sum equals to k.Example 1:
Input: nums = [1,1,1], k = 2
Output: 2
Example 2:
Input: nums = [1,2,3], k = 3
Output: 2
Constraints:
•
1 <= nums.length <= 2 * 10^4•
-1000 <= nums[i] <= 1000•
-10^7 <= k <= 10^72022-02-11
567. Permutation in String
Topic: Hash Table, Two Pointers, String, Sliding Window
Difficulty: Medium
Problem:
Given two strings
In other words, return
Example 1:
Example 2:
Constraints:
•
•
567. Permutation in String
Topic: Hash Table, Two Pointers, String, Sliding Window
Difficulty: Medium
Problem:
Given two strings
s1 and s2, return true if s2 contains a permutation of s1, or false otherwise.In other words, return
true if one of s1's permutations is the substring of s2.Example 1:
Input: s1 = "ab", s2 = "eidbaooo"
Output: true
Explanation: s2 contains one permutation of s1 ("ba").
Example 2:
Input: s1 = "ab", s2 = "eidboaoo"
Output: false
Constraints:
•
1 <= s1.length, s2.length <= 10^4•
s1 and s2 consist of lowercase English letters.2022-02-12
127. Word Ladder
Topic: Hash Table, String, Breadth-First Search
Difficulty: Hard
Problem:
A transformation sequence from word
• Every adjacent pair of words differs by a single letter.
• Every
•
Given two words,
Example 1:
Example 2:
Constraints:
•
•
•
•
•
•
• All the words in
127. Word Ladder
Topic: Hash Table, String, Breadth-First Search
Difficulty: Hard
Problem:
A transformation sequence from word
beginWord to word endWord using a dictionary wordList is a sequence of words beginWord -> s_1 -> s_2 -> ... -> s_k such that:• Every adjacent pair of words differs by a single letter.
• Every
s_i for 1 <= i <= k is in wordList. Note that beginWord does not need to be in wordList.•
s_k == endWordGiven two words,
beginWord and endWord, and a dictionary wordList, return the number of words in the shortest transformation sequence from beginWord to endWord, or 0 if no such sequence exists.Example 1:
Input: beginWord = "hit", endWord = "cog", wordList = ["hot","dot","dog","lot","log","cog"]
Output: 5
Explanation: One shortest transformation sequence is "hit" -> "hot" -> "dot" -> "dog" -> cog", which is 5 words long.
Example 2:
Input: beginWord = "hit", endWord = "cog", wordList = ["hot","dot","dog","lot","log"]
Output: 0
Explanation: The endWord "cog" is not in wordList, therefore there is no valid transformation sequence.
Constraints:
•
1 <= beginWord.length <= 10•
endWord.length == beginWord.length•
1 <= wordList.length <= 5000•
wordList[i].length == beginWord.length•
beginWord, endWord, and wordList[i] consist of lowercase English letters.•
beginWord != endWord• All the words in
wordList are unique.2022-02-13
78. Subsets
Topic: Array, Backtracking, Bit Manipulation
Difficulty: Medium
Problem:
Given an integer array
The solution set must not contain duplicate subsets. Return the solution in any order.
Example 1:
Example 2:
Constraints:
•
•
• All the numbers of
78. Subsets
Topic: Array, Backtracking, Bit Manipulation
Difficulty: Medium
Problem:
Given an integer array
nums of unique elements, return all possible subsets (the power set).The solution set must not contain duplicate subsets. Return the solution in any order.
Example 1:
Input: nums = [1,2,3]
Output: [[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
Example 2:
Input: nums = [0]
Output: [[],[0]]
Constraints:
•
1 <= nums.length <= 10•
-10 <= nums[i] <= 10• All the numbers of
nums are unique.2022-02-14
104. Maximum Depth of Binary Tree
Topic: Tree, Depth-First Search, Breadth-First Search, Binary Tree
Difficulty: Easy
Problem:
Given the
A binary tree's maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
Example 1:
Image: https://assets.leetcode.com/uploads/2020/11/26/tmp-tree.jpg
Example 2:
Constraints:
• The number of nodes in the tree is in the range
•
104. Maximum Depth of Binary Tree
Topic: Tree, Depth-First Search, Breadth-First Search, Binary Tree
Difficulty: Easy
Problem:
Given the
root of a binary tree, return its maximum depth.A binary tree's maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
Example 1:
Image: https://assets.leetcode.com/uploads/2020/11/26/tmp-tree.jpg
Input: root = [3,9,20,null,null,15,7]
Output: 3
Example 2:
Input: root = [1,null,2]
Output: 2
Constraints:
• The number of nodes in the tree is in the range
[0, 10^4].•
-100 <= Node.val <= 1002022-02-15
136. Single Number
Topic: Array, Bit Manipulation
Difficulty: Easy
Problem:
Given a non-empty array of integers
You must implement a solution with a linear runtime complexity and use only constant extra space.
Example 1:
Example 2:
Example 3:
Constraints:
•
•
• Each element in the array appears twice except for one element which appears only once.
136. Single Number
Topic: Array, Bit Manipulation
Difficulty: Easy
Problem:
Given a non-empty array of integers
nums, every element appears twice except for one. Find that single one.You must implement a solution with a linear runtime complexity and use only constant extra space.
Example 1:
Input: nums = [2,2,1]
Output: 1
Example 2:
Input: nums = [4,1,2,1,2]
Output: 4
Example 3:
Input: nums = [1]
Output: 1
Constraints:
•
1 <= nums.length <= 3 * 10^4•
-3 * 10^4 <= nums[i] <= 3 * 10^4• Each element in the array appears twice except for one element which appears only once.
2022-02-16
24. Swap Nodes in Pairs
Topic: Linked List, Recursion
Difficulty: Medium
Problem:
Given a linked list, swap every two adjacent nodes and return its head. You must solve the problem without modifying the values in the list's nodes (i.e., only nodes themselves may be changed.)
Example 1:
Image: https://assets.leetcode.com/uploads/2020/10/03/swap_ex1.jpg
Example 2:
Example 3:
Constraints:
• The number of nodes in the list is in the range
•
24. Swap Nodes in Pairs
Topic: Linked List, Recursion
Difficulty: Medium
Problem:
Given a linked list, swap every two adjacent nodes and return its head. You must solve the problem without modifying the values in the list's nodes (i.e., only nodes themselves may be changed.)
Example 1:
Image: https://assets.leetcode.com/uploads/2020/10/03/swap_ex1.jpg
Input: head = [1,2,3,4]
Output: [2,1,4,3]
Example 2:
Input: head = []
Output: []
Example 3:
Input: head = [1]
Output: [1]
Constraints:
• The number of nodes in the list is in the range
[0, 100].•
0 <= Node.val <= 1002022-02-17
39. Combination Sum
Topic: Array, Backtracking
Difficulty: Medium
Problem:
Given an array of distinct integers
The same number may be chosen from
It is guaranteed that the number of unique combinations that sum up to
Example 1:
Example 2:
Example 3:
Constraints:
•
•
• All elements of
•
39. Combination Sum
Topic: Array, Backtracking
Difficulty: Medium
Problem:
Given an array of distinct integers
candidates and a target integer target, return a list of all unique combinations of candidates where the chosen numbers sum to target. You may return the combinations in any order.The same number may be chosen from
candidates an unlimited number of times. Two combinations are unique if the frequency of at least one of the chosen numbers is different.It is guaranteed that the number of unique combinations that sum up to
target is less than 150 combinations for the given input.Example 1:
Input: candidates = [2,3,6,7], target = 7
Output: [[2,2,3],[7]]
Explanation:
2 and 3 are candidates, and 2 + 2 + 3 = 7. Note that 2 can be used multiple times.
7 is a candidate, and 7 = 7.
These are the only two combinations.
Example 2:
Input: candidates = [2,3,5], target = 8
Output: [[2,2,2,2],[2,3,3],[3,5]]
Example 3:
Input: candidates = [2], target = 1
Output: []
Constraints:
•
1 <= candidates.length <= 30•
1 <= candidates[i] <= 200• All elements of
candidates are distinct.•
1 <= target <= 5002022-02-18
402. Remove K Digits
Topic: String, Stack, Greedy, Monotonic Stack
Difficulty: Medium
Problem:
Given string num representing a non-negative integer
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
402. Remove K Digits
Topic: String, Stack, Greedy, Monotonic Stack
Difficulty: Medium
Problem:
Given string num representing a non-negative integer
num, and an integer k, return the smallest possible integer after removing k digits from num.Example 1:
Input: num = "1432219", k = 3
Output: "1219"
Explanation: Remove the three digits 4, 3, and 2 to form the new number 1219 which is the smallest.
Example 2:
Input: num = "10200", k = 1
Output: "200"
Explanation: Remove the leading 1 and the number is 200. Note that the output must not contain leading zeroes.
Example 3:
Input: num = "10", k = 2
Output: "0"
Explanation: Remove all the digits from the number and it is left with nothing which is 0.
Constraints:
•
1 <= k <= num.length <= 10^5•
num consists of only digits.•
num does not have any leading zeros except for the zero itself.2022-02-19
1675. Minimize Deviation in Array
Topic: Array, Greedy, Heap (Priority Queue), Ordered Set
Difficulty: Hard
Problem:
You are given an array
You can perform two types of operations on any element of the array any number of times:
• If the element is even, divide it by
• For example, if the array is
• If the element is odd, multiply it by
• For example, if the array is
The deviation of the array is the maximum difference between any two elements in the array.
Return the minimum deviation the array can have after performing some number of operations.
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
1675. Minimize Deviation in Array
Topic: Array, Greedy, Heap (Priority Queue), Ordered Set
Difficulty: Hard
Problem:
You are given an array
nums of n positive integers.You can perform two types of operations on any element of the array any number of times:
• If the element is even, divide it by
2.• For example, if the array is
[1,2,3,4], then you can do this operation on the last element, and the array will be [1,2,3,2].• If the element is odd, multiply it by
2.• For example, if the array is
[1,2,3,4], then you can do this operation on the first element, and the array will be [2,2,3,4].The deviation of the array is the maximum difference between any two elements in the array.
Return the minimum deviation the array can have after performing some number of operations.
Example 1:
Input: nums = [1,2,3,4]
Output: 1
Explanation: You can transform the array to [1,2,3,2], then to [2,2,3,2], then the deviation will be 3 - 2 = 1.
Example 2:
Input: nums = [4,1,5,20,3]
Output: 3
Explanation: You can transform the array after two operations to [4,2,5,5,3], then the deviation will be 5 - 2 = 3.
Example 3:
Input: nums = [2,10,8]
Output: 3
Constraints:
•
n == nums.length•
2 <= n <= 10^5•
1 <= nums[i] <= 10^92022-02-20
1288. Remove Covered Intervals
Topic: Array, Sorting
Difficulty: Medium
Problem:
Given an array
The interval
Return the number of remaining intervals.
Example 1:
Example 2:
Constraints:
•
•
•
• All the given intervals are unique.
1288. Remove Covered Intervals
Topic: Array, Sorting
Difficulty: Medium
Problem:
Given an array
intervals where intervals[i] = [l_i, r_i] represent the interval [l_i, r_i), remove all intervals that are covered by another interval in the list.The interval
[a, b) is covered by the interval [c, d) if and only if c <= a and b <= d.Return the number of remaining intervals.
Example 1:
Input: intervals = [[1,4],[3,6],[2,8]]
Output: 2
Explanation: Interval [3,6] is covered by [2,8], therefore it is removed.
Example 2:
Input: intervals = [[1,4],[2,3]]
Output: 1
Constraints:
•
1 <= intervals.length <= 1000•
intervals[i].length == 2•
0 <= l_i <= r_i <= 10^5• All the given intervals are unique.
2022-02-21
169. Majority Element
Topic: Array, Hash Table, Divide and Conquer, Sorting, Counting
Difficulty: Easy
Problem:
Given an array
The majority element is the element that appears more than
Example 1:
Example 2:
Constraints:
•
•
•
Follow-up: Could you solve the problem in linear time and in
169. Majority Element
Topic: Array, Hash Table, Divide and Conquer, Sorting, Counting
Difficulty: Easy
Problem:
Given an array
nums of size n, return the majority element.The majority element is the element that appears more than
⌊n / 2⌋ times. You may assume that the majority element always exists in the array.Example 1:
Input: nums = [3,2,3]
Output: 3
Example 2:
Input: nums = [2,2,1,1,1,2,2]
Output: 2
Constraints:
•
n == nums.length•
1 <= n <= 5 * 10^4•
-2^31 <= nums[i] <= 2^31 - 1Follow-up: Could you solve the problem in linear time and in
O(1) space?2022-02-22
171. Excel Sheet Column Number
Topic: Math, String
Difficulty: Easy
Problem:
Given a string
For example:
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
171. Excel Sheet Column Number
Topic: Math, String
Difficulty: Easy
Problem:
Given a string
columnTitle that represents the column title as appear in an Excel sheet, return its corresponding column number.For example:
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
Example 1:
Input: columnTitle = "A"
Output: 1
Example 2:
Input: columnTitle = "AB"
Output: 28
Example 3:
Input: columnTitle = "ZY"
Output: 701
Constraints:
•
1 <= columnTitle.length <= 7•
columnTitle consists only of uppercase English letters.•
columnTitle is in the range ["A", "FXSHRXW"].2022-02-23
133. Clone Graph
Topic: Hash Table, Depth-First Search, Breadth-First Search, Graph
Difficulty: Medium
Problem:
Given a reference of a node in a connected undirected graph.
Return a deep copy (clone) of the graph.
Each node in the graph contains a value (
Test case format:
For simplicity, each node's value is the same as the node's index (1-indexed). For example, the first node with
An adjacency list is a collection of unordered lists used to represent a finite graph. Each list describes the set of neighbors of a node in the graph.
The given node will always be the first node with
Example 1:
Image: https://assets.leetcode.com/uploads/2019/11/04/133_clone_graph_question.png
Example 2:
Image: https://assets.leetcode.com/uploads/2020/01/07/graph.png
Example 3:
Constraints:
• The number of nodes in the graph is in the range
•
•
• There are no repeated edges and no self-loops in the graph.
• The Graph is connected and all nodes can be visited starting from the given node.
133. Clone Graph
Topic: Hash Table, Depth-First Search, Breadth-First Search, Graph
Difficulty: Medium
Problem:
Given a reference of a node in a connected undirected graph.
Return a deep copy (clone) of the graph.
Each node in the graph contains a value (
int) and a list (List[Node]) of its neighbors.class Node {
public int val;
public List<Node> neighbors;
}
Test case format:
For simplicity, each node's value is the same as the node's index (1-indexed). For example, the first node with
val == 1, the second node with val == 2, and so on. The graph is represented in the test case using an adjacency list.An adjacency list is a collection of unordered lists used to represent a finite graph. Each list describes the set of neighbors of a node in the graph.
The given node will always be the first node with
val = 1. You must return the copy of the given node as a reference to the cloned graph.Example 1:
Image: https://assets.leetcode.com/uploads/2019/11/04/133_clone_graph_question.png
Input: adjList = [[2,4],[1,3],[2,4],[1,3]]
Output: [[2,4],[1,3],[2,4],[1,3]]
Explanation: There are 4 nodes in the graph.
1st node (val = 1)'s neighbors are 2nd node (val = 2) and 4th node (val = 4).
2nd node (val = 2)'s neighbors are 1st node (val = 1) and 3rd node (val = 3).
3rd node (val = 3)'s neighbors are 2nd node (val = 2) and 4th node (val = 4).
4th node (val = 4)'s neighbors are 1st node (val = 1) and 3rd node (val = 3).
Example 2:
Image: https://assets.leetcode.com/uploads/2020/01/07/graph.png
Input: adjList = [[]]
Output: [[]]
Explanation: Note that the input contains one empty list. The graph consists of only one node with val = 1 and it does not have any neighbors.
Example 3:
Input: adjList = []
Output: []
Explanation: This an empty graph, it does not have any nodes.
Constraints:
• The number of nodes in the graph is in the range
[0, 100].•
1 <= Node.val <= 100•
Node.val is unique for each node.• There are no repeated edges and no self-loops in the graph.
• The Graph is connected and all nodes can be visited starting from the given node.
2022-02-24
148. Sort List
Topic: Linked List, Two Pointers, Divide and Conquer, Sorting, Merge Sort
Difficulty: Medium
Problem:
Given the
Example 1:
Image: https://assets.leetcode.com/uploads/2020/09/14/sort_list_1.jpg
Example 2:
Image: https://assets.leetcode.com/uploads/2020/09/14/sort_list_2.jpg
Example 3:
Constraints:
• The number of nodes in the list is in the range
•
Follow up: Can you sort the linked list in
148. Sort List
Topic: Linked List, Two Pointers, Divide and Conquer, Sorting, Merge Sort
Difficulty: Medium
Problem:
Given the
head of a linked list, return the list after sorting it in ascending order.Example 1:
Image: https://assets.leetcode.com/uploads/2020/09/14/sort_list_1.jpg
Input: head = [4,2,1,3]
Output: [1,2,3,4]
Example 2:
Image: https://assets.leetcode.com/uploads/2020/09/14/sort_list_2.jpg
Input: head = [-1,5,3,4,0]
Output: [-1,0,3,4,5]
Example 3:
Input: head = []
Output: []
Constraints:
• The number of nodes in the list is in the range
[0, 5 * 10^4].•
-10^5 <= Node.val <= 10^5Follow up: Can you sort the linked list in
O(n logn) time and O(1) memory (i.e. constant space)?2022-02-25
165. Compare Version Numbers
Topic: Two Pointers, String
Difficulty: Medium
Problem:
Given two version numbers,
Version numbers consist of one or more revisions joined by a dot
To compare version numbers, compare their revisions in left-to-right order. Revisions are compared using their integer value ignoring any leading zeros. This means that revisions
Return the following:
• If
• If
• Otherwise, return
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
• All the given revisions in
165. Compare Version Numbers
Topic: Two Pointers, String
Difficulty: Medium
Problem:
Given two version numbers,
version1 and version2, compare them.Version numbers consist of one or more revisions joined by a dot
'.'. Each revision consists of digits and may contain leading zeros. Every revision contains at least one character. Revisions are 0-indexed from left to right, with the leftmost revision being revision 0, the next revision being revision 1, and so on. For example 2.5.33 and 0.1 are valid version numbers.To compare version numbers, compare their revisions in left-to-right order. Revisions are compared using their integer value ignoring any leading zeros. This means that revisions
1 and 001 are considered equal. If a version number does not specify a revision at an index, then treat the revision as 0. For example, version 1.0 is less than version 1.1 because their revision 0s are the same, but their revision 1s are 0 and 1 respectively, and 0 < 1.Return the following:
• If
version1 < version2, return -1.• If
version1 > version2, return 1.• Otherwise, return
0.Example 1:
Input: version1 = "1.01", version2 = "1.001"
Output: 0
Explanation: Ignoring leading zeroes, both "01" and "001" represent the same integer "1".
Example 2:
Input: version1 = "1.0", version2 = "1.0.0"
Output: 0
Explanation: version1 does not specify revision 2, which means it is treated as "0".
Example 3:
Input: version1 = "0.1", version2 = "1.1"
Output: -1
Explanation: version1's revision 0 is "0", while version2's revision 0 is "1". 0 < 1, so version1 < version2.
Constraints:
•
1 <= version1.length, version2.length <= 500•
version1 and version2 only contain digits and '.'.•
version1 and version2 are valid version numbers.• All the given revisions in
version1 and version2 can be stored in a 32-bit integer.2022-02-26
847. Shortest Path Visiting All Nodes
Topic: Dynamic Programming, Bit Manipulation, Breadth-First Search, Graph, Bitmask
Difficulty: Hard
Problem:
You have an undirected, connected graph of
Return the length of the shortest path that visits every node. You may start and stop at any node, you may revisit nodes multiple times, and you may reuse edges.
Example 1:
Image: https://assets.leetcode.com/uploads/2021/05/12/shortest1-graph.jpg
Example 2:
Image: https://assets.leetcode.com/uploads/2021/05/12/shortest2-graph.jpg
Constraints:
•
•
•
•
• If
• The input graph is always connected.
847. Shortest Path Visiting All Nodes
Topic: Dynamic Programming, Bit Manipulation, Breadth-First Search, Graph, Bitmask
Difficulty: Hard
Problem:
You have an undirected, connected graph of
n nodes labeled from 0 to n - 1. You are given an array graph where graph[i] is a list of all the nodes connected with node i by an edge.Return the length of the shortest path that visits every node. You may start and stop at any node, you may revisit nodes multiple times, and you may reuse edges.
Example 1:
Image: https://assets.leetcode.com/uploads/2021/05/12/shortest1-graph.jpg
Input: graph = [[1,2,3],[0],[0],[0]]
Output: 4
Explanation: One possible path is [1,0,2,0,3]
Example 2:
Image: https://assets.leetcode.com/uploads/2021/05/12/shortest2-graph.jpg
Input: graph = [[1],[0,2,4],[1,3,4],[2],[1,2]]
Output: 4
Explanation: One possible path is [0,1,4,2,3]
Constraints:
•
n == graph.length•
1 <= n <= 12•
0 <= graph[i].length < n•
graph[i] does not contain i.• If
graph[a] contains b, then graph[b] contains a.• The input graph is always connected.
2022-02-27
662. Maximum Width of Binary Tree
Topic: Tree, Depth-First Search, Breadth-First Search, Binary Tree
Difficulty: Medium
Problem:
Given the
The maximum width of a tree is the maximum width among all levels.
The width of one level is defined as the length between the end-nodes (the leftmost and rightmost non-null nodes), where the null nodes between the end-nodes are also counted into the length calculation.
It is guaranteed that the answer will in the range of 32-bit signed integer.
Example 1:
Image: https://assets.leetcode.com/uploads/2021/05/03/width1-tree.jpg
Example 2:
Image: https://assets.leetcode.com/uploads/2021/05/03/width2-tree.jpg
Example 3:
Image: https://assets.leetcode.com/uploads/2021/05/03/width3-tree.jpg
Constraints:
• The number of nodes in the tree is in the range
•
662. Maximum Width of Binary Tree
Topic: Tree, Depth-First Search, Breadth-First Search, Binary Tree
Difficulty: Medium
Problem:
Given the
root of a binary tree, return the maximum width of the given tree.The maximum width of a tree is the maximum width among all levels.
The width of one level is defined as the length between the end-nodes (the leftmost and rightmost non-null nodes), where the null nodes between the end-nodes are also counted into the length calculation.
It is guaranteed that the answer will in the range of 32-bit signed integer.
Example 1:
Image: https://assets.leetcode.com/uploads/2021/05/03/width1-tree.jpg
Input: root = [1,3,2,5,3,null,9]
Output: 4
Explanation: The maximum width existing in the third level with the length 4 (5,3,null,9).
Example 2:
Image: https://assets.leetcode.com/uploads/2021/05/03/width2-tree.jpg
Input: root = [1,3,null,5,3]
Output: 2
Explanation: The maximum width existing in the third level with the length 2 (5,3).
Example 3:
Image: https://assets.leetcode.com/uploads/2021/05/03/width3-tree.jpg
Input: root = [1,3,2,5]
Output: 2
Explanation: The maximum width existing in the second level with the length 2 (3,2).
Constraints:
• The number of nodes in the tree is in the range
[1, 3000].•
-100 <= Node.val <= 100