class Solution {
public:
bool hasPathSum(TreeNode* root, int targetSum) {
if(root==nullptr){
return false;
}
if(root->left==nullptr && root->right==nullptr){
return root->val==targetSum;
}
return hasPathSum(root->left,targetSum-root->val) || hasPathSum(root->right,targetSum-root->val) ;
}
};
![在这里插入图片描述](https://img-blog.csdnimg.cn/12e5324fe0344dffa56f6dc426c4fb19.jpeg)
class Solution {
public:
vector<int> temp;
vector<vector<int>> ans;
void dfs(int cur, int n, int k) {
if (temp.size() + (n - cur + 1) < k) {
return;
}
if (temp.size() == k) {
ans.push_back(temp);
return;
}
temp.push_back(cur);
dfs(cur + 1, n, k);
temp.pop_back();
dfs(cur + 1, n, k);
}
vector<vector<int>> combine(int n, int k) {
dfs(1, n, k);
return ans;
}
};
![在这里插入图片描述](https://img-blog.csdnimg.cn/127fd46b26124fb2837306b8b161ae5f.jpeg)
static const int dirs[4][2] = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};
class Solution {
public:
vector<vector<int>> heights;
void dfs(int row, int col, vector<vector<bool>> & ocean) {
int m = ocean.size();
int n = ocean[0].size();
if (ocean[row][col]) {
return;
}
ocean[row][col] = true;
for (int i = 0; i < 4; i++) {
int newRow = row + dirs[i][0], newCol = col + dirs[i][1];
if (newRow >= 0 && newRow < m && newCol >= 0 && newCol < n && heights[newRow][newCol] >= heights[row][col]) {
dfs(newRow, newCol, ocean);
}
}
}
vector<vector<int>> pacificAtlantic(vector<vector<int>>& heights) {
this->heights = heights;
int m = heights.size();
int n = heights[0].size();
vector<vector<bool>> pacific(m, vector<bool>(n, false));
vector<vector<bool>> atlantic(m, vector<bool>(n, false));
for (int i = 0; i < m; i++) {
dfs(i, 0, pacific);
}
for (int j = 1; j < n; j++) {
dfs(0, j, pacific);
}
for (int i = 0; i < m; i++) {
dfs(i, n - 1, atlantic);
}
for (int j = 0; j < n - 1; j++) {
dfs(m - 1, j, atlantic);
}
vector<vector<int>> result;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (pacific[i][j] && atlantic[i][j]) {
vector<int> cell;
cell.emplace_back(i);
cell.emplace_back(j);
result.emplace_back(cell);
}
}
}
return result;
}
};
![在这里插入图片描述](https://img-blog.csdnimg.cn/f1044662531d4f7086f3bd7ef9348da6.jpeg)