当前位置: 首页 > news >正文

济南网站自然优化广州市公司网站建设价格

济南网站自然优化,广州市公司网站建设价格,公司网站首页模板,itmc电子商务网店运营推广打卡记录 统计无向图中无法互相到达点对数(并查集 / DFS) 链接 并查集 思路:用并查集将连通区域的连在一起,再遍历所有点,用hash表存储不同连通块的元素个数,然后 乘积和 便是答案。 注意: /…

打卡记录

在这里插入图片描述


统计无向图中无法互相到达点对数(并查集 / DFS)

链接

并查集

思路:用并查集将连通区域的连在一起,再遍历所有点,用hash表存储不同连通块的元素个数,然后 乘积和 便是答案。

注意:

// 计算乘积和(妙)
long long ans = 0, total = 0;
for (auto [_, x] : hash) {ans += x * total;total += x;
}

class Solution {
public:long long countPairs(int n, vector<vector<int>>& edges) {vector<int> p(n);for (int i = 0; i < n; ++i) p[i] = i;function<int(int)> find = [&](int u) -> int {if (p[u] != u) p[u] = find(p[u]);return p[u];};for (auto& edge : edges) {int x = find(edge[0]), y = find(edge[1]);if (x != y) p[x] = y;}unordered_map<int, int> hash;for (int i = 0; i < n; ++i) {hash[find(i)]++;}long long ans = 0, total = 0;for (auto [_, x] : hash) {ans += x * total;total += x;}return ans;}
};

DFS

思路:搜寻每个连通块的元素个数,之后同理便可以计算出答案。

class Solution {
public:long long countPairs(int n, vector<vector<int>>& edges) {vector<int> g[n];for (auto& edge : edges) {int a = edge[0], b = edge[1];g[a].push_back(b);g[b].push_back(a);}vector<bool> st(n, false);function<int(int)> dfs = [&](int u) -> int {if (st[u]) return 0;int cnt = 1;st[u] = true;for (auto& e : g[u]) cnt += dfs(e);return cnt;};long long ans = 0, sum = 0;for (int i = 0; i < n; ++i) {int cnt = dfs(i);ans += sum * cnt;sum += cnt;}return ans;}
};

反转二叉树的奇数层(BFS[层序遍历] / DFS)

链接

BFS(层序遍历)

思路:在层序遍历使用 queue 的基础上,将奇数层的整层的节点按照从左到右的顺序全部存入新开的一个数组中,然后对数组中的所有值进行颠倒。

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:TreeNode* reverseOddLevels(TreeNode* root) {queue<TreeNode*> q;q.push(root);bool flag = false;while (!q.empty()) {vector<TreeNode*> t;while (!q.empty()) {t.push_back(q.front());q.pop();}if (flag) {for (int i = 0, j = t.size() - 1; i < j; ++i, --j)swap(t[i]->val, t[j]->val);}flag = !flag;for (auto u : t) {if (u->left) q.push(u->left);if (u->right) q.push(u->right);}}return root;}
};
http://www.yayakq.cn/news/995901/

相关文章:

  • 上海市建设工程 安全质量网站公司基本资料模板
  • 如何做宣传自己公司网站比较有名的网站建设平台
  • 如何安装wordpress主题seo运营是什么意思
  • 免费网站优化怎么做网页链接怎么打开
  • 网络公司名字大全集搜索引擎优化的基本原理
  • 泰州市统计局网站建设方案安徽六安市地图位置
  • 上虞宇普电器网站建设网站更新后 为什么不显示
  • 智能网站平台百度营销搜索推广
  • 采集文章留在网站自己建设网站服务器
  • 装饰工程 技术支持 东莞网站建设wordpress点击插件
  • 淘宝客网站如何做排名学院网站建设管理
  • 公司网站首页模板广州海珠区网站建设
  • 姑苏区建设局网站wordpress 批量导入用户
  • 外贸网站一站式海外推广注册公司官网入口
  • 贵阳北京小学网站建设wordpress 顶部空白
  • 新郑整站优化自己写wordpress插件吗
  • 企业网站建设规划可行性分析plc培训机构哪家最好
  • 兴国县城乡规划建设局网站佛山外发加工网
  • 加网络网站建设工作室宁波微信推广平台哪个好
  • 慧聪网的网站建设策略wordpress视频教程下载
  • 特色的南昌网站建设合肥网站建设哪个公司做得比较好
  • 北海哪家做网站织梦网站下载地址
  • 顺的网站建设精英企业年金是1比3还是1比4
  • 温州地区做网站网站建设论文摘要
  • 好看的设计网站新罗区优出网络科技有限公司
  • 节庆时候的网站是怎么做的做家电网站
  • 响应式网站 英语如何免费做网站的教程
  • 集约化网站建设的核心做酒店网站有哪些目录
  • 网站建站方式工业设计是干什么的
  • 教育门户网站源码免费APP 微信 网站平台