dfs|位运算

lc

lcr007

class Solution {

public:

int singleNumber(vector<int>& nums) {

int sunm=0,ret=0,x=0;

for(int i=0;i<32;i++)

{

int sum=0;//每次循环 重置sum

//数的每一位进行处理

for(auto& c:nums)

{

sum+=(c>>i)&1;

}

x=sum%3;

ret|=(x<<i);

}

return ret;

}

};

lc1376

树的最大深度dfs

自底向上

++maxPathSum = max(maxPathSum, dfs(y))++

return ++maxPathSum + informTime[x];++

class Solution {

public:

int numOfMinutes(int n, int headID, vector<int>& manager, vector<int>& informTime) {

vector<vector<int>> g(n);

for (int i = 0; i < n; i++) {

if (manager[i] >= 0) {

++g[manager[i]].push_back(i); // 建树++

}

}

auto dfs = [&](this auto&& dfs, int x) -> int {

int maxPathSum = 0;

for (int y : g[x]) { // 遍历 x 的儿子 y(如果没有儿子就不会进入循环)

++maxPathSum = max(maxPathSum, dfs(y));++

}

return ++maxPathSum + informTime[x];++

};

return dfs(headID); // 从根节点 headID 开始递归

}

};

相关推荐
芥子沫7 小时前
《人工智能基础》[算法篇3]:决策树
人工智能·算法·决策树
苏纪云7 小时前
算法<C++>——双指针 | 滑动窗口
数据结构·c++·算法·双指针·滑动窗口
保持低旋律节奏7 小时前
算法——二叉树、dfs、bfs、适配器、队列练习
算法·深度优先·宽度优先
Y200309167 小时前
U-net 系列算法总结
人工智能·算法·目标跟踪
代码不停7 小时前
Java二分算法题目练习
java·算法
等一个自然而然的晴天~7 小时前
晴天小猪历险记之Hill---Dijkstra算法
算法
Brookty7 小时前
【算法】位运算| & ^ ~ -n n-1
学习·算法·leetcode·位运算
.格子衫.7 小时前
023数据结构之线段树——算法备赛
java·数据结构·算法
TT哇7 小时前
【BFS 解决 FloodFill 算法】1. 图像渲染(medium)
算法·宽度优先