2024-08-09
840. Magic Squares In Grid
Topic: Array, Hash Table, Math, Matrix
Difficulty: Medium
Problem:
A
Given a
Note: while a magic square can only contain numbers from 1 to 9,
Example 1:
Image: https://assets.leetcode.com/uploads/2020/09/11/magic_main.jpg
Example 2:
Constraints:
•
•
•
•
840. Magic Squares In Grid
Topic: Array, Hash Table, Math, Matrix
Difficulty: Medium
Problem:
A
3 x 3 magic square is a 3 x 3 grid filled with distinct numbers from 1 to 9 such that each row, column, and both diagonals all have the same sum.Given a
row x col grid of integers, how many 3 x 3 contiguous magic square subgrids are there?Note: while a magic square can only contain numbers from 1 to 9,
grid may contain numbers up to 15.Example 1:
Image: https://assets.leetcode.com/uploads/2020/09/11/magic_main.jpg
Input: grid = [[4,3,8,4],[9,5,1,9],[2,7,6,2]]
Output: 1
Explanation:
The following subgrid is a 3 x 3 magic square:
Image: [https://assets.leetcode.com/uploads/2020/09/11/magic_valid.jpg](https://assets.leetcode.com/uploads/2020/09/11/magic_valid.jpg)
while this one is not:
Image: [https://assets.leetcode.com/uploads/2020/09/11/magic_invalid.jpg](https://assets.leetcode.com/uploads/2020/09/11/magic_invalid.jpg)
In total, there is only one magic square inside the given grid.
Example 2:
Input: grid = [[8]]
Output: 0
Constraints:
•
row == grid.length•
col == grid[i].length•
1 <= row, col <= 10•
0 <= grid[i][j] <= 152024-08-10
959. Regions Cut By Slashes
Topic: Array, Hash Table, Depth-First Search, Breadth-First Search, Union Find, Matrix
Difficulty: Medium
Problem:
An
Given the grid
Note that backslash characters are escaped, so a
Example 1:
Image: https://assets.leetcode.com/uploads/2018/12/15/1.png
Example 2:
Image: https://assets.leetcode.com/uploads/2018/12/15/2.png
Example 3:
Image: https://assets.leetcode.com/uploads/2018/12/15/4.png
Constraints:
•
•
•
959. Regions Cut By Slashes
Topic: Array, Hash Table, Depth-First Search, Breadth-First Search, Union Find, Matrix
Difficulty: Medium
Problem:
An
n x n grid is composed of 1 x 1 squares where each 1 x 1 square consists of a '/', '\', or blank space ' '. These characters divide the square into contiguous regions.Given the grid
grid represented as a string array, return the number of regions.Note that backslash characters are escaped, so a
'\' is represented as '\\'.Example 1:
Image: https://assets.leetcode.com/uploads/2018/12/15/1.png
Input: grid = [" /","/ "]
Output: 2
Example 2:
Image: https://assets.leetcode.com/uploads/2018/12/15/2.png
Input: grid = [" /"," "]
Output: 1
Example 3:
Image: https://assets.leetcode.com/uploads/2018/12/15/4.png
Input: grid = ["/\\","\\/"]
Output: 5
Explanation: Recall that because \ characters are escaped, "\\/" refers to \/, and "/\\" refers to /\.
Constraints:
•
n == grid.length == grid[i].length•
1 <= n <= 30•
grid[i][j] is either '/', '\', or ' '.2024-08-11
1568. Minimum Number of Days to Disconnect Island
Topic: Array, Depth-First Search, Breadth-First Search, Matrix, Strongly Connected Component
Difficulty: Hard
Problem:
You are given an
The grid is said to be connected if we have exactly one island, otherwise is said disconnected.
In one day, we are allowed to change any single land cell
Return the minimum number of days to disconnect the grid.
Example 1:
Image: https://assets.leetcode.com/uploads/2021/12/24/land1.jpg
Example 2:
Image: https://assets.leetcode.com/uploads/2021/12/24/land2.jpg
Constraints:
•
•
•
•
1568. Minimum Number of Days to Disconnect Island
Topic: Array, Depth-First Search, Breadth-First Search, Matrix, Strongly Connected Component
Difficulty: Hard
Problem:
You are given an
m x n binary grid grid where 1 represents land and 0 represents water. An island is a maximal 4-directionally (horizontal or vertical) connected group of 1's.The grid is said to be connected if we have exactly one island, otherwise is said disconnected.
In one day, we are allowed to change any single land cell
(1) into a water cell (0).Return the minimum number of days to disconnect the grid.
Example 1:
Image: https://assets.leetcode.com/uploads/2021/12/24/land1.jpg
Input: grid = [[0,1,1,0],[0,1,1,0],[0,0,0,0]]
Output: 2
Explanation: We need at least 2 days to get a disconnected grid.
Change land grid[1][1] and grid[0][2] to water and get 2 disconnected island.
Example 2:
Image: https://assets.leetcode.com/uploads/2021/12/24/land2.jpg
Input: grid = [[1,1]]
Output: 2
Explanation: Grid of full water is also disconnected ([[1,1]] -> [[0,0]]), 0 islands.
Constraints:
•
m == grid.length•
n == grid[i].length•
1 <= m, n <= 30•
grid[i][j] is either 0 or 1.2024-08-12
703. Kth Largest Element in a Stream
Topic: Tree, Design, Binary Search Tree, Heap (Priority Queue), Binary Tree, Data Stream
Difficulty: Easy
Problem:
Design a class to find the
Implement
•
•
Example 1:
Constraints:
•
•
•
•
• At most
• It is guaranteed that there will be at least
703. Kth Largest Element in a Stream
Topic: Tree, Design, Binary Search Tree, Heap (Priority Queue), Binary Tree, Data Stream
Difficulty: Easy
Problem:
Design a class to find the
k^th largest element in a stream. Note that it is the k^th largest element in the sorted order, not the k^th distinct element.Implement
KthLargest class:•
KthLargest(int k, int[] nums) Initializes the object with the integer k and the stream of integers nums.•
int add(int val) Appends the integer val to the stream and returns the element representing the k^th largest element in the stream.Example 1:
Input
["KthLargest", "add", "add", "add", "add", "add"]
[[3, [4, 5, 8, 2]], [3], [5], [10], [9], [4]]
Output
[null, 4, 5, 5, 8, 8]
Explanation
KthLargest kthLargest = new KthLargest(3, [4, 5, 8, 2]);
kthLargest.add(3); // return 4
kthLargest.add(5); // return 5
kthLargest.add(10); // return 5
kthLargest.add(9); // return 8
kthLargest.add(4); // return 8
Constraints:
•
1 <= k <= 10^4•
0 <= nums.length <= 10^4•
-10^4 <= nums[i] <= 10^4•
-10^4 <= val <= 10^4• At most
10^4 calls will be made to add.• It is guaranteed that there will be at least
k elements in the array when you search for the k^th element.2024-08-13
40. Combination Sum II
Topic: Array, Backtracking
Difficulty: Medium
Problem:
Given a collection of candidate numbers (
Each number in
Note: The solution set must not contain duplicate combinations.
Example 1:
Example 2:
Constraints:
•
•
•
40. Combination Sum II
Topic: Array, Backtracking
Difficulty: Medium
Problem:
Given a collection of candidate numbers (
candidates) and a target number (target), find all unique combinations in candidates where the candidate numbers sum to target.Each number in
candidates may only be used once in the combination.Note: The solution set must not contain duplicate combinations.
Example 1:
Input: candidates = [10,1,2,7,6,1,5], target = 8
Output:
[
[1,1,6],
[1,2,5],
[1,7],
[2,6]
]
Example 2:
Input: candidates = [2,5,2,1,2], target = 5
Output:
[
[1,2,2],
[5]
]
Constraints:
•
1 <= candidates.length <= 100•
1 <= candidates[i] <= 50•
1 <= target <= 302024-08-14
719. Find K-th Smallest Pair Distance
Topic: Array, Two Pointers, Binary Search, Sorting
Difficulty: Hard
Problem:
The distance of a pair of integers
Given an integer array
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
•
719. Find K-th Smallest Pair Distance
Topic: Array, Two Pointers, Binary Search, Sorting
Difficulty: Hard
Problem:
The distance of a pair of integers
a and b is defined as the absolute difference between a and b.Given an integer array
nums and an integer k, return the k^th smallest distance among all the pairs nums[i] and nums[j] where 0 <= i < j < nums.length.Example 1:
Input: nums = [1,3,1], k = 1
Output: 0
Explanation: Here are all the pairs:
(1,3) -> 2
(1,1) -> 0
(3,1) -> 2
Then the 1^st smallest distance pair is (1,1), and its distance is 0.
Example 2:
Input: nums = [1,1,1], k = 2
Output: 0
Example 3:
Input: nums = [1,6,1], k = 3
Output: 5
Constraints:
•
n == nums.length•
2 <= n <= 10^4•
0 <= nums[i] <= 10^6•
1 <= k <= n * (n - 1) / 22024-08-15
860. Lemonade Change
Topic: Array, Greedy
Difficulty: Easy
Problem:
At a lemonade stand, each lemonade costs
Note that you do not have any change in hand at first.
Given an integer array
Example 1:
Example 2:
Constraints:
•
•
860. Lemonade Change
Topic: Array, Greedy
Difficulty: Easy
Problem:
At a lemonade stand, each lemonade costs
$5. Customers are standing in a queue to buy from you and order one at a time (in the order specified by bills). Each customer will only buy one lemonade and pay with either a $5, $10, or $20 bill. You must provide the correct change to each customer so that the net transaction is that the customer pays $5.Note that you do not have any change in hand at first.
Given an integer array
bills where bills[i] is the bill the i^th customer pays, return true if you can provide every customer with the correct change, or false otherwise.Example 1:
Input: bills = [5,5,5,10,20]
Output: true
Explanation:
From the first 3 customers, we collect three $5 bills in order.
From the fourth customer, we collect a $10 bill and give back a $5.
From the fifth customer, we give a $10 bill and a $5 bill.
Since all customers got correct change, we output true.
Example 2:
Input: bills = [5,5,10,10,20]
Output: false
Explanation:
From the first two customers in order, we collect two $5 bills.
For the next two customers in order, we collect a $10 bill and give back a $5 bill.
For the last customer, we can not give the change of $15 back because we only have two $10 bills.
Since not every customer received the correct change, the answer is false.
Constraints:
•
1 <= bills.length <= 10^5•
bills[i] is either 5, 10, or 20.2024-08-17
1937. Maximum Number of Points with Cost
Topic: Array, Dynamic Programming
Difficulty: Medium
Problem:
You are given an
To gain points, you must pick one cell in each row. Picking the cell at coordinates
However, you will lose points if you pick a cell too far from the cell that you picked in the previous row. For every two adjacent rows
Return the maximum number of points you can achieve.
•
•
Example 1:
Image: https://assets.leetcode.com/uploads/2021/07/12/screenshot-2021-07-12-at-13-40-26-diagram-drawio-diagrams-net.png
Example 2:
Image: https://assets.leetcode.com/uploads/2021/07/12/screenshot-2021-07-12-at-13-42-14-diagram-drawio-diagrams-net.png
Constraints:
•
•
•
•
•
1937. Maximum Number of Points with Cost
Topic: Array, Dynamic Programming
Difficulty: Medium
Problem:
You are given an
m x n integer matrix points (0-indexed). Starting with 0 points, you want to maximize the number of points you can get from the matrix.To gain points, you must pick one cell in each row. Picking the cell at coordinates
(r, c) will add points[r][c] to your score.However, you will lose points if you pick a cell too far from the cell that you picked in the previous row. For every two adjacent rows
r and r + 1 (where 0 <= r < m - 1), picking cells at coordinates (r, c_1) and (r + 1, c_2) will subtract abs(c_1 - c_2) from your score.Return the maximum number of points you can achieve.
abs(x) is defined as:•
x for x >= 0.•
-x for x < 0.Example 1:
Image: https://assets.leetcode.com/uploads/2021/07/12/screenshot-2021-07-12-at-13-40-26-diagram-drawio-diagrams-net.png
Input: points = [[1,2,3],[1,5,1],[3,1,1]]
Output: 9
Explanation:
The blue cells denote the optimal cells to pick, which have coordinates (0, 2), (1, 1), and (2, 0).
You add 3 + 5 + 3 = 11 to your score.
However, you must subtract abs(2 - 1) + abs(1 - 0) = 2 from your score.
Your final score is 11 - 2 = 9.
Example 2:
Image: https://assets.leetcode.com/uploads/2021/07/12/screenshot-2021-07-12-at-13-42-14-diagram-drawio-diagrams-net.png
Input: points = [[1,5],[2,3],[4,2]]
Output: 11
Explanation:
The blue cells denote the optimal cells to pick, which have coordinates (0, 1), (1, 1), and (2, 0).
You add 5 + 3 + 4 = 12 to your score.
However, you must subtract abs(1 - 1) + abs(1 - 0) = 1 from your score.
Your final score is 12 - 1 = 11.
Constraints:
•
m == points.length•
n == points[r].length•
1 <= m, n <= 10^5•
1 <= m * n <= 10^5•
0 <= points[r][c] <= 10^52024-08-18
264. Ugly Number II
Topic: Hash Table, Math, Dynamic Programming, Heap (Priority Queue)
Difficulty: Medium
Problem:
An ugly number is a positive integer whose prime factors are limited to
Given an integer
Example 1:
Example 2:
Constraints:
•
264. Ugly Number II
Topic: Hash Table, Math, Dynamic Programming, Heap (Priority Queue)
Difficulty: Medium
Problem:
An ugly number is a positive integer whose prime factors are limited to
2, 3, and 5.Given an integer
n, return the n^th ugly number.Example 1:
Input: n = 10
Output: 12
Explanation: [1, 2, 3, 4, 5, 6, 8, 9, 10, 12] is the sequence of the first 10 ugly numbers.
Example 2:
Input: n = 1
Output: 1
Explanation: 1 has no prime factors, therefore all of its prime factors are limited to 2, 3, and 5.
Constraints:
•
1 <= n <= 16902024-08-19
650. 2 Keys Keyboard
Topic: Math, Dynamic Programming
Difficulty: Medium
Problem:
There is only one character
• Copy All: You can copy all the characters present on the screen (a partial copy is not allowed).
• Paste: You can paste the characters which are copied last time.
Given an integer
Example 1:
Example 2:
Constraints:
•
650. 2 Keys Keyboard
Topic: Math, Dynamic Programming
Difficulty: Medium
Problem:
There is only one character
'A' on the screen of a notepad. You can perform one of two operations on this notepad for each step:• Copy All: You can copy all the characters present on the screen (a partial copy is not allowed).
• Paste: You can paste the characters which are copied last time.
Given an integer
n, return the minimum number of operations to get the character 'A' exactly n times on the screen.Example 1:
Input: n = 3
Output: 3
Explanation: Initially, we have one character 'A'.
In step 1, we use Copy All operation.
In step 2, we use Paste operation to get 'AA'.
In step 3, we use Paste operation to get 'AAA'.
Example 2:
Input: n = 1
Output: 0
Constraints:
•
1 <= n <= 10002024-08-20
1140. Stone Game II
Topic: Array, Math, Dynamic Programming, Prefix Sum, Game Theory
Difficulty: Medium
Problem:
Alice and Bob continue their games with piles of stones. There are a number of piles arranged in a row, and each pile has a positive integer number of stones
Alice and Bob take turns, with Alice starting first. Initially,
On each player's turn, that player can take all the stones in the first
The game continues until all the stones have been taken.
Assuming Alice and Bob play optimally, return the maximum number of stones Alice can get.
Example 1:
Example 2:
Constraints:
•
•
1140. Stone Game II
Topic: Array, Math, Dynamic Programming, Prefix Sum, Game Theory
Difficulty: Medium
Problem:
Alice and Bob continue their games with piles of stones. There are a number of piles arranged in a row, and each pile has a positive integer number of stones
piles[i]. The objective of the game is to end with the most stones. Alice and Bob take turns, with Alice starting first. Initially,
M = 1.On each player's turn, that player can take all the stones in the first
X remaining piles, where 1 <= X <= 2M. Then, we set M = max(M, X).The game continues until all the stones have been taken.
Assuming Alice and Bob play optimally, return the maximum number of stones Alice can get.
Example 1:
Input: piles = [2,7,9,4,4]
Output: 10
Explanation: If Alice takes one pile at the beginning, Bob takes two piles, then Alice takes 2 piles again. Alice can get 2 + 4 + 4 = 10 piles in total. If Alice takes two piles at the beginning, then Bob can take all three piles left. In this case, Alice get 2 + 7 = 9 piles in total. So we return 10 since it's larger.
Example 2:
Input: piles = [1,2,3,4,5,100]
Output: 104
Constraints:
•
1 <= piles.length <= 100•
1 <= piles[i] <= 10^42024-08-21
664. Strange Printer
Topic: String, Dynamic Programming
Difficulty: Hard
Problem:
There is a strange printer with the following two special properties:
• The printer can only print a sequence of the same character each time.
• At each turn, the printer can print new characters starting from and ending at any place and will cover the original existing characters.
Given a string
Example 1:
Example 2:
Constraints:
•
•
664. Strange Printer
Topic: String, Dynamic Programming
Difficulty: Hard
Problem:
There is a strange printer with the following two special properties:
• The printer can only print a sequence of the same character each time.
• At each turn, the printer can print new characters starting from and ending at any place and will cover the original existing characters.
Given a string
s, return the minimum number of turns the printer needed to print it.Example 1:
Input: s = "aaabbb"
Output: 2
Explanation: Print "aaa" first and then print "bbb".
Example 2:
Input: s = "aba"
Output: 2
Explanation: Print "aaa" first and then print "b" from the second place of the string, which will cover the existing character 'a'.
Constraints:
•
1 <= s.length <= 100•
s consists of lowercase English letters.2024-08-22
476. Number Complement
Topic: Bit Manipulation
Difficulty: Easy
Problem:
The complement of an integer is the integer you get when you flip all the
• For example, The integer
Given an integer
Example 1:
Example 2:
Constraints:
•
Note: This question is the same as 1009: <https://leetcode.com/problems/complement-of-base-10-integer/>
476. Number Complement
Topic: Bit Manipulation
Difficulty: Easy
Problem:
The complement of an integer is the integer you get when you flip all the
0's to 1's and all the 1's to 0's in its binary representation.• For example, The integer
5 is "101" in binary and its complement is "010" which is the integer 2.Given an integer
num, return its complement.Example 1:
Input: num = 5
Output: 2
Explanation: The binary representation of 5 is 101 (no leading zero bits), and its complement is 010. So you need to output 2.
Example 2:
Input: num = 1
Output: 0
Explanation: The binary representation of 1 is 1 (no leading zero bits), and its complement is 0. So you need to output 0.
Constraints:
•
1 <= num < 2^31Note: This question is the same as 1009: <https://leetcode.com/problems/complement-of-base-10-integer/>
2024-08-23
592. Fraction Addition and Subtraction
Topic: Math, String, Simulation
Difficulty: Medium
Problem:
Given a string
The final result should be an irreducible fraction. If your final result is an integer, change it to the format of a fraction that has a denominator
Example 1:
Example 2:
Example 3:
Constraints:
• The input string only contains
• Each fraction (input and output) has the format
• The input only contains valid irreducible fractions, where the numerator and denominator of each fraction will always be in the range
• The number of given fractions will be in the range
• The numerator and denominator of the final result are guaranteed to be valid and in the range of 32-bit int.
592. Fraction Addition and Subtraction
Topic: Math, String, Simulation
Difficulty: Medium
Problem:
Given a string
expression representing an expression of fraction addition and subtraction, return the calculation result in string format.The final result should be an irreducible fraction. If your final result is an integer, change it to the format of a fraction that has a denominator
1. So in this case, 2 should be converted to 2/1.Example 1:
Input: expression = "-1/2+1/2"
Output: "0/1"
Example 2:
Input: expression = "-1/2+1/2+1/3"
Output: "1/3"
Example 3:
Input: expression = "1/3-1/2"
Output: "-1/6"
Constraints:
• The input string only contains
'0' to '9', '/', '+' and '-'. So does the output.• Each fraction (input and output) has the format
±numerator/denominator. If the first input fraction or the output is positive, then '+' will be omitted.• The input only contains valid irreducible fractions, where the numerator and denominator of each fraction will always be in the range
[1, 10]. If the denominator is 1, it means this fraction is actually an integer in a fraction format defined above.• The number of given fractions will be in the range
[1, 10].• The numerator and denominator of the final result are guaranteed to be valid and in the range of 32-bit int.
2024-08-24
564. Find the Closest Palindrome
Topic: Math, String
Difficulty: Hard
Problem:
Given a string
The closest is defined as the absolute difference minimized between two integers.
Example 1:
Example 2:
Constraints:
•
•
•
•
564. Find the Closest Palindrome
Topic: Math, String
Difficulty: Hard
Problem:
Given a string
n representing an integer, return the closest integer (not including itself), which is a palindrome. If there is a tie, return the smaller one.The closest is defined as the absolute difference minimized between two integers.
Example 1:
Input: n = "123"
Output: "121"
Example 2:
Input: n = "1"
Output: "0"
Explanation: 0 and 2 are the closest palindromes but we return the smallest which is 0.
Constraints:
•
1 <= n.length <= 18•
n consists of only digits.•
n does not have leading zeros.•
n is representing an integer in the range [1, 10^18 - 1].2024-08-25
145. Binary Tree Postorder Traversal
Topic: Stack, Tree, Depth-First Search, Binary Tree
Difficulty: Easy
Problem:
Given the
Example 1:
Image: https://assets.leetcode.com/uploads/2020/08/28/pre1.jpg
Example 2:
Example 3:
Constraints:
• The number of the nodes in the tree is in the range
•
Follow up: Recursive solution is trivial, could you do it iteratively?
145. Binary Tree Postorder Traversal
Topic: Stack, Tree, Depth-First Search, Binary Tree
Difficulty: Easy
Problem:
Given the
root of a binary tree, return the postorder traversal of its nodes' values.Example 1:
Image: https://assets.leetcode.com/uploads/2020/08/28/pre1.jpg
Input: root = [1,null,2,3]
Output: [3,2,1]
Example 2:
Input: root = []
Output: []
Example 3:
Input: root = [1]
Output: [1]
Constraints:
• The number of the nodes in the tree is in the range
[0, 100].•
-100 <= Node.val <= 100Follow up: Recursive solution is trivial, could you do it iteratively?
2024-08-26
590. N-ary Tree Postorder Traversal
Topic: Stack, Tree, Depth-First Search
Difficulty: Easy
Problem:
Given the
Nary-Tree input serialization is represented in their level order traversal. Each group of children is separated by the null value (See examples)
Example 1:
Image: https://assets.leetcode.com/uploads/2018/10/12/narytreeexample.png
Example 2:
Image: https://assets.leetcode.com/uploads/2019/11/08/sample_4_964.png
Constraints:
• The number of nodes in the tree is in the range
•
• The height of the n-ary tree is less than or equal to
Follow up: Recursive solution is trivial, could you do it iteratively?
590. N-ary Tree Postorder Traversal
Topic: Stack, Tree, Depth-First Search
Difficulty: Easy
Problem:
Given the
root of an n-ary tree, return the postorder traversal of its nodes' values.Nary-Tree input serialization is represented in their level order traversal. Each group of children is separated by the null value (See examples)
Example 1:
Image: https://assets.leetcode.com/uploads/2018/10/12/narytreeexample.png
Input: root = [1,null,3,2,4,null,5,6]
Output: [5,6,3,2,4,1]
Example 2:
Image: https://assets.leetcode.com/uploads/2019/11/08/sample_4_964.png
Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: [2,6,14,11,7,3,12,8,4,13,9,10,5,1]
Constraints:
• The number of nodes in the tree is in the range
[0, 10^4].•
0 <= Node.val <= 10^4• The height of the n-ary tree is less than or equal to
1000.Follow up: Recursive solution is trivial, could you do it iteratively?
2024-08-27
1514. Path with Maximum Probability
Topic: Array, Graph, Heap (Priority Queue), Shortest Path
Difficulty: Medium
Problem:
You are given an undirected weighted graph of
Given two nodes
If there is no path from
Example 1:
Image: https://assets.leetcode.com/uploads/2019/09/20/1558_ex1.png
Example 2:
Image: https://assets.leetcode.com/uploads/2019/09/20/1558_ex2.png
Example 3:
Image: https://assets.leetcode.com/uploads/2019/09/20/1558_ex3.png
Constraints:
•
•
•
•
•
•
•
• There is at most one edge between every two nodes.
1514. Path with Maximum Probability
Topic: Array, Graph, Heap (Priority Queue), Shortest Path
Difficulty: Medium
Problem:
You are given an undirected weighted graph of
n nodes (0-indexed), represented by an edge list where edges[i] = [a, b] is an undirected edge connecting the nodes a and b with a probability of success of traversing that edge succProb[i].Given two nodes
start and end, find the path with the maximum probability of success to go from start to end and return its success probability.If there is no path from
start to end, return 0. Your answer will be accepted if it differs from the correct answer by at most 1e-5.Example 1:
Image: https://assets.leetcode.com/uploads/2019/09/20/1558_ex1.png
Input: n = 3, edges = [[0,1],[1,2],[0,2]], succProb = [0.5,0.5,0.2], start = 0, end = 2
Output: 0.25000
Explanation: There are two paths from start to end, one having a probability of success = 0.2 and the other has 0.5 * 0.5 = 0.25.
Example 2:
Image: https://assets.leetcode.com/uploads/2019/09/20/1558_ex2.png
Input: n = 3, edges = [[0,1],[1,2],[0,2]], succProb = [0.5,0.5,0.3], start = 0, end = 2
Output: 0.30000
Example 3:
Image: https://assets.leetcode.com/uploads/2019/09/20/1558_ex3.png
Input: n = 3, edges = [[0,1]], succProb = [0.5], start = 0, end = 2
Output: 0.00000
Explanation: There is no path between 0 and 2.
Constraints:
•
2 <= n <= 10^4•
0 <= start, end < n•
start != end•
0 <= a, b < n•
a != b•
0 <= succProb.length == edges.length <= 2*10^4•
0 <= succProb[i] <= 1• There is at most one edge between every two nodes.
2024-08-28
1905. Count Sub Islands
Topic: Array, Depth-First Search, Breadth-First Search, Union Find, Matrix
Difficulty: Medium
Problem:
You are given two
An island in
Return the number of islands in
Example 1:
Image: https://assets.leetcode.com/uploads/2021/06/10/test1.png
Example 2:
Image: https://assets.leetcode.com/uploads/2021/06/03/testcasex2.png
Constraints:
•
•
•
•
1905. Count Sub Islands
Topic: Array, Depth-First Search, Breadth-First Search, Union Find, Matrix
Difficulty: Medium
Problem:
You are given two
m x n binary matrices grid1 and grid2 containing only 0's (representing water) and 1's (representing land). An island is a group of 1's connected 4-directionally (horizontal or vertical). Any cells outside of the grid are considered water cells.An island in
grid2 is considered a sub-island if there is an island in grid1 that contains all the cells that make up this island in grid2.Return the number of islands in
grid2 that are considered sub-islands.Example 1:
Image: https://assets.leetcode.com/uploads/2021/06/10/test1.png
Input: grid1 = [[1,1,1,0,0],[0,1,1,1,1],[0,0,0,0,0],[1,0,0,0,0],[1,1,0,1,1]], grid2 = [[1,1,1,0,0],[0,0,1,1,1],[0,1,0,0,0],[1,0,1,1,0],[0,1,0,1,0]]
Output: 3
Explanation: In the picture above, the grid on the left is grid1 and the grid on the right is grid2.
The 1s colored red in grid2 are those considered to be part of a sub-island. There are three sub-islands.
Example 2:
Image: https://assets.leetcode.com/uploads/2021/06/03/testcasex2.png
Input: grid1 = [[1,0,1,0,1],[1,1,1,1,1],[0,0,0,0,0],[1,1,1,1,1],[1,0,1,0,1]], grid2 = [[0,0,0,0,0],[1,1,1,1,1],[0,1,0,1,0],[0,1,0,1,0],[1,0,0,0,1]]
Output: 2
Explanation: In the picture above, the grid on the left is grid1 and the grid on the right is grid2.
The 1s colored red in grid2 are those considered to be part of a sub-island. There are two sub-islands.
Constraints:
•
m == grid1.length == grid2.length•
n == grid1[i].length == grid2[i].length•
1 <= m, n <= 500•
grid1[i][j] and grid2[i][j] are either 0 or 1.2024-08-29
947. Most Stones Removed with Same Row or Column
Topic: Hash Table, Depth-First Search, Union Find, Graph
Difficulty: Medium
Problem:
On a 2D plane, we place
A stone can be removed if it shares either the same row or the same column as another stone that has not been removed.
Given an array
Example 1:
Example 2:
Example 3:
Constraints:
•
•
• No two stones are at the same coordinate point.
947. Most Stones Removed with Same Row or Column
Topic: Hash Table, Depth-First Search, Union Find, Graph
Difficulty: Medium
Problem:
On a 2D plane, we place
n stones at some integer coordinate points. Each coordinate point may have at most one stone.A stone can be removed if it shares either the same row or the same column as another stone that has not been removed.
Given an array
stones of length n where stones[i] = [x_i, y_i] represents the location of the i^th stone, return the largest possible number of stones that can be removed.Example 1:
Input: stones = [[0,0],[0,1],[1,0],[1,2],[2,1],[2,2]]
Output: 5
Explanation: One way to remove 5 stones is as follows:
1. Remove stone [2,2] because it shares the same row as [2,1].
2. Remove stone [2,1] because it shares the same column as [0,1].
3. Remove stone [1,2] because it shares the same row as [1,0].
4. Remove stone [1,0] because it shares the same column as [0,0].
5. Remove stone [0,1] because it shares the same row as [0,0].
Stone [0,0] cannot be removed since it does not share a row/column with another stone still on the plane.
Example 2:
Input: stones = [[0,0],[0,2],[1,1],[2,0],[2,2]]
Output: 3
Explanation: One way to make 3 moves is as follows:
1. Remove stone [2,2] because it shares the same row as [2,0].
2. Remove stone [2,0] because it shares the same column as [0,0].
3. Remove stone [0,2] because it shares the same row as [0,0].
Stones [0,0] and [1,1] cannot be removed since they do not share a row/column with another stone still on the plane.
Example 3:
Input: stones = [[0,0]]
Output: 0
Explanation: [0,0] is the only stone on the plane, so you cannot remove it.
Constraints:
•
1 <= stones.length <= 1000•
0 <= x_i, y_i <= 10^4• No two stones are at the same coordinate point.
2024-08-30
2699. Modify Graph Edge Weights
Topic: Graph, Heap (Priority Queue), Shortest Path
Difficulty: Hard
Problem:
You are given an undirected weighted connected graph containing
Some edges have a weight of
Your task is to modify all edges with a weight of
Return an array containing all edges (even unmodified ones) in any order if it is possible to make the shortest distance from
Note: You are not allowed to modify the weights of edges with initial positive weights.
Example 1:
Image: https://assets.leetcode.com/uploads/2023/04/18/graph.png
Example 2:
Image: https://assets.leetcode.com/uploads/2023/04/18/graph-2.png
Example 3:
Image: https://assets.leetcode.com/uploads/2023/04/19/graph-3.png
Constraints:
•
•
•
•
•
•
•
•
•
• The graph is connected, and there are no self-loops or repeated edges
2699. Modify Graph Edge Weights
Topic: Graph, Heap (Priority Queue), Shortest Path
Difficulty: Hard
Problem:
You are given an undirected weighted connected graph containing
n nodes labeled from 0 to n - 1, and an integer array edges where edges[i] = [a_i, b_i, w_i] indicates that there is an edge between nodes a_i and b_i with weight w_i.Some edges have a weight of
-1 (w_i = -1), while others have a positive weight (w_i > 0).Your task is to modify all edges with a weight of
-1 by assigning them positive integer values in the range [1, 2 * 10^9] so that the shortest distance between the nodes source and destination becomes equal to an integer target. If there are multiple modifications that make the shortest distance between source and destination equal to target, any of them will be considered correct.Return an array containing all edges (even unmodified ones) in any order if it is possible to make the shortest distance from
source to destination equal to target, or an empty array if it's impossible.Note: You are not allowed to modify the weights of edges with initial positive weights.
Example 1:
Image: https://assets.leetcode.com/uploads/2023/04/18/graph.png
Input: n = 5, edges = [[4,1,-1],[2,0,-1],[0,3,-1],[4,3,-1]], source = 0, destination = 1, target = 5
Output: [[4,1,1],[2,0,1],[0,3,3],[4,3,1]]
Explanation: The graph above shows a possible modification to the edges, making the distance from 0 to 1 equal to 5.
Example 2:
Image: https://assets.leetcode.com/uploads/2023/04/18/graph-2.png
Input: n = 3, edges = [[0,1,-1],[0,2,5]], source = 0, destination = 2, target = 6
Output: []
Explanation: The graph above contains the initial edges. It is not possible to make the distance from 0 to 2 equal to 6 by modifying the edge with weight -1. So, an empty array is returned.
Example 3:
Image: https://assets.leetcode.com/uploads/2023/04/19/graph-3.png
Input: n = 4, edges = [[1,0,4],[1,2,3],[2,3,5],[0,3,-1]], source = 0, destination = 2, target = 6
Output: [[1,0,4],[1,2,3],[2,3,5],[0,3,1]]
Explanation: The graph above shows a modified graph having the shortest distance from 0 to 2 as 6.
Constraints:
•
1 <= n <= 100•
1 <= edges.length <= n * (n - 1) / 2•
edges[i].length == 3•
0 <= a_i, b_i < n•
w_i = -1or 1 <= w_i <= 10^7•
a_i != b_i•
0 <= source, destination < n•
source != destination•
1 <= target <= 10^9• The graph is connected, and there are no self-loops or repeated edges