Skip to content

Commit 04a8846

Browse files
add 1298
1 parent 7f7cacb commit 04a8846

File tree

7 files changed

+116
-5
lines changed

7 files changed

+116
-5
lines changed

README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -595,4 +595,5 @@ LeetCode
595595
|1293|[Shortest Path in a Grid with Obstacles Elimination](https://leetcode.com/problems/shortest-path-in-a-grid-with-obstacles-elimination/)|c|[c++](./src/1293-Shortest-Path-in-a-Grid-with-Obstacles-Elimination/1293.cpp)|[python](./src/1293-Shortest-Path-in-a-Grid-with-Obstacles-Elimination/1293.py)|[go](./src/1293-Shortest-Path-in-a-Grid-with-Obstacles-Elimination/1293.go)|[js](./src/1293-Shortest-Path-in-a-Grid-with-Obstacles-Elimination/1293.js)|[java](./src/1293-Shortest-Path-in-a-Grid-with-Obstacles-Elimination/1293.java)|Hard|
596596
|1295|[Find Numbers with Even Number of Digits](https://leetcode.com/problems/find-numbers-with-even-number-of-digits/)|c|[c++](./src/1295-Find-Numbers-with-Even-Number-of-Digits/1295.cpp)|[python](./src/1295-Find-Numbers-with-Even-Number-of-Digits/1295.py)|[go](./src/1295-Find-Numbers-with-Even-Number-of-Digits/1295.go)|[js](./src/1295-Find-Numbers-with-Even-Number-of-Digits/1295.js)|[java](./src/1295-Find-Numbers-with-Even-Number-of-Digits/1295.java)|Easy|
597597
|1296|[Divide Array in Sets of K Consecutive Numbers](https://leetcode.com/problems/divide-array-in-sets-of-k-consecutive-numbers/)|c|[c++](./src/1296-Divide-Array-in-Sets-of-K-Consecutive-Numbers/1296.cpp)|[python](./src/1296-Divide-Array-in-Sets-of-K-Consecutive-Numbers/1296.py)|[go](./src/1296-Divide-Array-in-Sets-of-K-Consecutive-Numbers/1296.go)|[js](./src/1296-Divide-Array-in-Sets-of-K-Consecutive-Numbers/1296.js)|[java](./src/1296-Divide-Array-in-Sets-of-K-Consecutive-Numbers/1296.java)|Medium|
598-
|1297|[Maximum Number of Occurrences of a Substring](https://leetcode.com/problems/maximum-number-of-occurrences-of-a-substring/)|c|[c++](./src/1297-Maximum-Number-of-Occurrences-of-a-Substring/1297.cpp)|[python](./src/1297-Maximum-Number-of-Occurrences-of-a-Substring/1297.py)|[go](./src/1297-Maximum-Number-of-Occurrences-of-a-Substring/1297.go)|[js](./src/1297-Maximum-Number-of-Occurrences-of-a-Substring/1297.js)|[java](./src/1297-Maximum-Number-of-Occurrences-of-a-Substring/1297.java)|Medium|
598+
|1297|[Maximum Number of Occurrences of a Substring](https://leetcode.com/problems/maximum-number-of-occurrences-of-a-substring/)|c|[c++](./src/1297-Maximum-Number-of-Occurrences-of-a-Substring/1297.cpp)|[python](./src/1297-Maximum-Number-of-Occurrences-of-a-Substring/1297.py)|[go](./src/1297-Maximum-Number-of-Occurrences-of-a-Substring/1297.go)|[js](./src/1297-Maximum-Number-of-Occurrences-of-a-Substring/1297.js)|[java](./src/1297-Maximum-Number-of-Occurrences-of-a-Substring/1297.java)|Medium|
599+
|1298|[Maximum Candies You Can Get from Boxes](https://leetcode.com/problems/maximum-candies-you-can-get-from-boxes/)|c|[c++](./src/1298-Maximum-Candies-You-Can-Get-from-Boxes/1298.cpp)|[python](./src/1298-Maximum-Candies-You-Can-Get-from-Boxes/1298.py)|[go](./src/1298-Maximum-Candies-You-Can-Get-from-Boxes/1298.go)|[js](./src/1298-Maximum-Candies-You-Can-Get-from-Boxes/1298.js)|[java](./src/1298-Maximum-Candies-You-Can-Get-from-Boxes/1298.java)|Hard|
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
class Solution
2+
{
3+
public:
4+
int maxCandies(vector<int>& status, vector<int>& candies, vector<vector<int>>& keys, vector<vector<int>>& containedBoxes, vector<int>& initialBoxes)
5+
{
6+
queue<int> q;
7+
for (int i : initialBoxes) q.push(i);
8+
int res = 0;
9+
10+
while (!q.empty())
11+
{
12+
int changed = 0;
13+
for (int q_len = q.size(); q_len > 0; q_len--)
14+
{
15+
int b = q.front(); q.pop();
16+
if (status[b])
17+
{
18+
changed = 1;
19+
res += candies[b];
20+
for (int i : containedBoxes[b]) q.push(i);
21+
for (int i : keys[b]) status[i] = 1;
22+
} else q.push(b);
23+
}
24+
if (!changed) return res;
25+
}
26+
return res;
27+
}
28+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
func maxCandies(status []int, candies []int, keys [][]int, containedBoxes [][]int, initialBoxes []int) int {
2+
q, res := initialBoxes, 0
3+
for len(q) > 0 {
4+
changed := false
5+
for q_len := len(q); q_len > 0; q_len-- {
6+
b := q[0]
7+
q = q[1:]
8+
if status[b] == 1 {
9+
changed = true
10+
res += candies[b]
11+
q = append(q, containedBoxes[b]...)
12+
for _, i := range keys[b] {
13+
status[i] = 1
14+
}
15+
} else {
16+
q = append(q, b)
17+
}
18+
}
19+
if !changed {
20+
return res
21+
}
22+
}
23+
return res
24+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class Solution {
2+
public int maxCandies(int[] status, int[] candies, int[][] keys, int[][] containedBoxes, int[] initialBoxes) {
3+
Queue<Integer> q = new LinkedList();
4+
for (int i : initialBoxes) q.offer(i);
5+
int res = 0;
6+
7+
while (!q.isEmpty()) {
8+
Boolean changed = false;
9+
for (int q_len = q.size(); q_len > 0; q_len--) {
10+
int b = q.poll();
11+
if (status[b] == 1) {
12+
changed = true;
13+
res += candies[b];
14+
for (int i : containedBoxes[b]) q.offer(i);
15+
for (int i : keys[b]) status[i] = 1;
16+
} else q.offer(b);
17+
}
18+
if (!changed) return res;
19+
}
20+
return res;
21+
}
22+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
var maxCandies = function(status, candies, keys, containedBoxes, initialBoxes) {
2+
let q = initialBoxes, res = 0;
3+
while (q.length > 0) {
4+
let changed = false;
5+
for (let q_len = q.length; q_len > 0; q_len--) {
6+
let b = q.shift();
7+
if (status[b] == 1) {
8+
changed = true;
9+
res += candies[b];
10+
q.push(...containedBoxes[b]);
11+
for (let i of keys[b]) status[i] = 1;
12+
} else q.push(b);
13+
}
14+
if (!changed) return res;
15+
}
16+
return res;
17+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
class Solution:
2+
def maxCandies(self, status: List[int], candies: List[int], keys: List[List[int]], containedBoxes: List[List[int]], initialBoxes: List[int]) -> int:
3+
q, res = initialBoxes, 0
4+
while q:
5+
q_len, changed = len(q), False
6+
for _ in range(q_len):
7+
b = q.pop(0)
8+
if status[b]:
9+
changed = True
10+
res += candies[b]
11+
q += containedBoxes[b]
12+
for i in keys[b]:
13+
status[i] = 1
14+
else:
15+
q.append(b)
16+
17+
if not changed:
18+
return res
19+
return res

src/addProb.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
import os, bisect
33

44
# 题目名称
5-
name = "Maximum Number of Occurrences of a Substring"
6-
ID = 1297
7-
url = "https://leetcode.com/problems/maximum-number-of-occurrences-of-a-substring/"
8-
difficult = "Medium"
5+
name = "Maximum Candies You Can Get from Boxes"
6+
ID = 1298
7+
url = "https://leetcode.com/problems/maximum-candies-you-can-get-from-boxes/"
8+
difficult = "Hard"
99
prog = ['c', 'cpp', 'py', 'go', 'js', 'java']
1010

1111

0 commit comments

Comments
 (0)