Skip to content

[pull] main from doocs:main #258

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions solution/0100-0199/0198.House Robber/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,16 +119,16 @@ public:
int n = nums.size();
int f[n];
memset(f, -1, sizeof(f));
auto dfs = [&](auto&& dfs, int i) -> int {
auto dfs = [&](this auto&& dfs, int i) -> int {
if (i >= n) {
return 0;
}
if (f[i] < 0) {
f[i] = max(nums[i] + dfs(dfs, i + 2), dfs(dfs, i + 1));
f[i] = max(nums[i] + dfs(i + 2), dfs(i + 1));
}
return f[i];
};
return dfs(dfs, 0);
return dfs(0);
}
};
```
Expand Down
6 changes: 3 additions & 3 deletions solution/0100-0199/0198.House Robber/README_EN.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,16 +118,16 @@ public:
int n = nums.size();
int f[n];
memset(f, -1, sizeof(f));
auto dfs = [&](auto&& dfs, int i) -> int {
auto dfs = [&](this auto&& dfs, int i) -> int {
if (i >= n) {
return 0;
}
if (f[i] < 0) {
f[i] = max(nums[i] + dfs(dfs, i + 2), dfs(dfs, i + 1));
f[i] = max(nums[i] + dfs(i + 2), dfs(i + 1));
}
return f[i];
};
return dfs(dfs, 0);
return dfs(0);
}
};
```
Expand Down
6 changes: 3 additions & 3 deletions solution/0100-0199/0198.House Robber/Solution.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ class Solution {
int n = nums.size();
int f[n];
memset(f, -1, sizeof(f));
auto dfs = [&](auto&& dfs, int i) -> int {
auto dfs = [&](this auto&& dfs, int i) -> int {
if (i >= n) {
return 0;
}
if (f[i] < 0) {
f[i] = max(nums[i] + dfs(dfs, i + 2), dfs(dfs, i + 1));
f[i] = max(nums[i] + dfs(i + 2), dfs(i + 1));
}
return f[i];
};
return dfs(dfs, 0);
return dfs(0);
}
};
6 changes: 3 additions & 3 deletions solution/0200-0299/0233.Number of Digit One/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ public:
int m = s.size();
int f[m][m];
memset(f, -1, sizeof(f));
auto dfs = [&](auto&& dfs, int i, int cnt, bool limit) -> int {
auto dfs = [&](this auto&& dfs, int i, int cnt, bool limit) -> int {
if (i >= m) {
return cnt;
}
Expand All @@ -168,14 +168,14 @@ public:
int up = limit ? s[i] - '0' : 9;
int ans = 0;
for (int j = 0; j <= up; ++j) {
ans += dfs(dfs, i + 1, cnt + (j == 1), limit && j == up);
ans += dfs(i + 1, cnt + (j == 1), limit && j == up);
}
if (!limit) {
f[i][cnt] = ans;
}
return ans;
};
return dfs(dfs, 0, 0, true);
return dfs(0, 0, true);
}
};
```
Expand Down
6 changes: 3 additions & 3 deletions solution/0200-0299/0233.Number of Digit One/README_EN.md
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ public:
int m = s.size();
int f[m][m];
memset(f, -1, sizeof(f));
auto dfs = [&](auto&& dfs, int i, int cnt, bool limit) -> int {
auto dfs = [&](this auto&& dfs, int i, int cnt, bool limit) -> int {
if (i >= m) {
return cnt;
}
Expand All @@ -168,14 +168,14 @@ public:
int up = limit ? s[i] - '0' : 9;
int ans = 0;
for (int j = 0; j <= up; ++j) {
ans += dfs(dfs, i + 1, cnt + (j == 1), limit && j == up);
ans += dfs(i + 1, cnt + (j == 1), limit && j == up);
}
if (!limit) {
f[i][cnt] = ans;
}
return ans;
};
return dfs(dfs, 0, 0, true);
return dfs(0, 0, true);
}
};
```
Expand Down
6 changes: 3 additions & 3 deletions solution/0200-0299/0233.Number of Digit One/Solution.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ class Solution {
int m = s.size();
int f[m][m];
memset(f, -1, sizeof(f));
auto dfs = [&](auto&& dfs, int i, int cnt, bool limit) -> int {
auto dfs = [&](this auto&& dfs, int i, int cnt, bool limit) -> int {
if (i >= m) {
return cnt;
}
Expand All @@ -15,13 +15,13 @@ class Solution {
int up = limit ? s[i] - '0' : 9;
int ans = 0;
for (int j = 0; j <= up; ++j) {
ans += dfs(dfs, i + 1, cnt + (j == 1), limit && j == up);
ans += dfs(i + 1, cnt + (j == 1), limit && j == up);
}
if (!limit) {
f[i][cnt] = ans;
}
return ans;
};
return dfs(dfs, 0, 0, true);
return dfs(0, 0, true);
}
};
6 changes: 3 additions & 3 deletions solution/0300-0399/0332.Reconstruct Itinerary/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,16 +131,16 @@ public:
g[ticket[0]].push_back(ticket[1]);
}
vector<string> ans;
auto dfs = [&](auto&& dfs, string& f) -> void {
auto dfs = [&](this auto&& dfs, string& f) -> void {
while (!g[f].empty()) {
string t = g[f].back();
g[f].pop_back();
dfs(dfs, t);
dfs(t);
}
ans.emplace_back(f);
};
string f = "JFK";
dfs(dfs, f);
dfs(f);
reverse(ans.begin(), ans.end());
return ans;
}
Expand Down
6 changes: 3 additions & 3 deletions solution/0300-0399/0332.Reconstruct Itinerary/README_EN.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,16 +129,16 @@ public:
g[ticket[0]].push_back(ticket[1]);
}
vector<string> ans;
auto dfs = [&](auto&& dfs, string& f) -> void {
auto dfs = [&](this auto&& dfs, string& f) -> void {
while (!g[f].empty()) {
string t = g[f].back();
g[f].pop_back();
dfs(dfs, t);
dfs(t);
}
ans.emplace_back(f);
};
string f = "JFK";
dfs(dfs, f);
dfs(f);
reverse(ans.begin(), ans.end());
return ans;
}
Expand Down
8 changes: 4 additions & 4 deletions solution/0300-0399/0332.Reconstruct Itinerary/Solution.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ class Solution {
g[ticket[0]].push_back(ticket[1]);
}
vector<string> ans;
auto dfs = [&](auto&& dfs, string& f) -> void {
auto dfs = [&](this auto&& dfs, string& f) -> void {
while (!g[f].empty()) {
string t = g[f].back();
g[f].pop_back();
dfs(dfs, t);
dfs(t);
}
ans.emplace_back(f);
};
string f = "JFK";
dfs(dfs, f);
dfs(f);
reverse(ans.begin(), ans.end());
return ans;
}
};
};
Original file line number Diff line number Diff line change
Expand Up @@ -212,16 +212,16 @@ public class NestedIterator implements Iterator<Integer> {
class NestedIterator {
public:
NestedIterator(vector<NestedInteger>& nestedList) {
auto dfs = [&](auto&& dfs, vector<NestedInteger>& ls) -> void {
auto dfs = [&](this auto&& dfs, vector<NestedInteger>& ls) -> void {
for (auto& x : ls) {
if (x.isInteger()) {
nums.push_back(x.getInteger());
} else {
dfs(dfs, x.getList());
dfs(x.getList());
}
}
};
dfs(dfs, nestedList);
dfs(nestedList);
}

int next() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -210,16 +210,16 @@ public class NestedIterator implements Iterator<Integer> {
class NestedIterator {
public:
NestedIterator(vector<NestedInteger>& nestedList) {
auto dfs = [&](auto&& dfs, vector<NestedInteger>& ls) -> void {
auto dfs = [&](this auto&& dfs, vector<NestedInteger>& ls) -> void {
for (auto& x : ls) {
if (x.isInteger()) {
nums.push_back(x.getInteger());
} else {
dfs(dfs, x.getList());
dfs(x.getList());
}
}
};
dfs(dfs, nestedList);
dfs(nestedList);
}

int next() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,16 @@
class NestedIterator {
public:
NestedIterator(vector<NestedInteger>& nestedList) {
auto dfs = [&](auto&& dfs, vector<NestedInteger>& ls) -> void {
auto dfs = [&](this auto&& dfs, vector<NestedInteger>& ls) -> void {
for (auto& x : ls) {
if (x.isInteger()) {
nums.push_back(x.getInteger());
} else {
dfs(dfs, x.getList());
dfs(x.getList());
}
}
};
dfs(dfs, nestedList);
dfs(nestedList);
}

int next() {
Expand All @@ -48,4 +48,4 @@ class NestedIterator {
* Your NestedIterator object will be instantiated and called as such:
* NestedIterator i(nestedList);
* while (i.hasNext()) cout << i.next();
*/
*/
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ tags:
<pre>
<strong>输入:</strong>n = 2
<strong>输出:</strong>91
<strong>解释:</strong>答案应为除去 <code>11、22、33、44、55、66、77、88、99 </code>外,在 0 ≤ x &lt; 100 范围内的所有数字。
<strong>解释:</strong>答案应为除去 <code>11、22、33、44、55、66、77、88、99 </code>外,在 0 ≤ x &lt; 100 范围内的所有数字。
</pre>

<p><strong>示例 2:</strong></p>
Expand Down Expand Up @@ -171,7 +171,7 @@ public:
int countNumbersWithUniqueDigits(int n) {
int f[n + 1][1 << 10];
memset(f, -1, sizeof(f));
auto dfs = [&](auto&& dfs, int i, int mask, bool lead) -> int {
auto dfs = [&](this auto&& dfs, int i, int mask, bool lead) -> int {
if (i < 0) {
return 1;
}
Expand All @@ -184,17 +184,17 @@ public:
continue;
}
if (lead && j == 0) {
ans += dfs(dfs, i - 1, mask, true);
ans += dfs(i - 1, mask, true);
} else {
ans += dfs(dfs, i - 1, mask | 1 << i, false);
ans += dfs(i - 1, mask | 1 << i, false);
}
}
if (!lead) {
f[i][mask] = ans;
}
return ans;
};
return dfs(dfs, n - 1, 0, true);
return dfs(n - 1, 0, true);
}
};
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ public:
int countNumbersWithUniqueDigits(int n) {
int f[n + 1][1 << 10];
memset(f, -1, sizeof(f));
auto dfs = [&](auto&& dfs, int i, int mask, bool lead) -> int {
auto dfs = [&](this auto&& dfs, int i, int mask, bool lead) -> int {
if (i < 0) {
return 1;
}
Expand All @@ -176,17 +176,17 @@ public:
continue;
}
if (lead && j == 0) {
ans += dfs(dfs, i - 1, mask, true);
ans += dfs(i - 1, mask, true);
} else {
ans += dfs(dfs, i - 1, mask | 1 << i, false);
ans += dfs(i - 1, mask | 1 << i, false);
}
}
if (!lead) {
f[i][mask] = ans;
}
return ans;
};
return dfs(dfs, n - 1, 0, true);
return dfs(n - 1, 0, true);
}
};
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ class Solution {
int countNumbersWithUniqueDigits(int n) {
int f[n + 1][1 << 10];
memset(f, -1, sizeof(f));
auto dfs = [&](auto&& dfs, int i, int mask, bool lead) -> int {
auto dfs = [&](this auto&& dfs, int i, int mask, bool lead) -> int {
if (i < 0) {
return 1;
}
Expand All @@ -16,16 +16,16 @@ class Solution {
continue;
}
if (lead && j == 0) {
ans += dfs(dfs, i - 1, mask, true);
ans += dfs(i - 1, mask, true);
} else {
ans += dfs(dfs, i - 1, mask | 1 << i, false);
ans += dfs(i - 1, mask | 1 << i, false);
}
}
if (!lead) {
f[i][mask] = ans;
}
return ans;
};
return dfs(dfs, n - 1, 0, true);
return dfs(n - 1, 0, true);
}
};
Original file line number Diff line number Diff line change
Expand Up @@ -154,16 +154,16 @@ public:
int getMinimumDifference(TreeNode* root) {
const int inf = 1 << 30;
int ans = inf, pre = -inf;
auto dfs = [&](auto&& dfs, TreeNode* root) -> void {
auto dfs = [&](this auto&& dfs, TreeNode* root) -> void {
if (!root) {
return;
}
dfs(dfs, root->left);
dfs(root->left);
ans = min(ans, root->val - pre);
pre = root->val;
dfs(dfs, root->right);
dfs(root->right);
};
dfs(dfs, root);
dfs(root);
return ans;
}
};
Expand Down
Loading