并查集 - 除法求值
题目链接
class Solution {public:vector<double> calcEquation(vector<vector<string>>& equations, vector<double>& values, vector<vector<string>>& queries) {int n = equations.size(), q = queries.size();vector<double> ret, fa(n*2), weight(n*2, 1.0);for (int i = 0; i < n*2; ++i) {fa[i] = i;}map<string, int> num;int now = 0;for (int i = 0; i < n; ++i) {if (num.find(equations[i][0]) == num.end()) {num[equations[i][0]] = now++;}if (num.find(equations[i][1]) == num.end()) {num[equations[i][1]] = now++;}int x = num[equations[i][0]];int y = num[equations[i][1]];int fx = find(fa, weight, x);int fy = find(fa, weight, y);fa[fx] = fy;weight[fx] = weight[y] / weight[x] * values[i];}for (int i = 0; i < q; ++i) {if (num.find(queries[i][0]) == num.end() || num.find(queries[i][1]) == num.end()) {ret.push_back(-1);continue;}int x = num[queries[i][0]];int y = num[queries[i][1]];int fx = find(fa, weight, x);int fy = find(fa, weight, y);if (fx != fy) {ret.push_back(-1);}else {ret.push_back(weight[x] / weight[y]);}}return ret;}int find(vector<double> &fa, vector<double> &weight, int x) {if (fa[x] != x) {int rt = find(fa, weight, fa[x]);weight[x] *= weight[fa[x]];fa[x] = rt;}return fa[x];}
};
并查集 - 除法求值相关推荐
- 【每日一题】除法求值
文章目录 题目描述 题解 题目描述 399. 除法求值 给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] = [Ai, Bi] 和 ...
- LeetCode 399 除法求值 题解
LeetCode 399 除法求值 题解 给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] = [Ai, Bi] 和 values[ ...
- LeetCode 399. 除法求值(图的DFS搜索)
1. 题目 给出方程式 A / B = k, 其中 A 和 B 均为用字符串表示的变量, k 是一个浮点型数字. 根据已知方程式求解问题,并返回计算结果.如果结果不存在,则返回 -1.0. 示例 : ...
- leetcode_399. 除法求值
目录 一.题目内容 二.解题思路 三.代码 一.题目内容 给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] = [Ai, Bi] 和 ...
- leetcode 399. Evaluate Division | 399. 除法求值(图的邻接表,DFS)
题目 https://leetcode.com/problems/evaluate-division/ 题解 题目看着复杂,实际上是图的 DFS. 例如,已知 a/b, b/c, c/d,想求 a/d ...
- leetcode 399. 除法求值(bfs)
给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] = [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi = v ...
- 【LeetCode笔记】399. 除法求值(Java、图)
文章目录 题目描述 思路 && 代码 题目描述 第二道图题,大概是hot100里唯二的图题了.. 思路 && 代码 邻接矩阵存储,g[i][j] 代表 i / j 的值 ...
- python和c语言的对比_类C语言与Python负数除法求值间的差异
一直用Python做计算器用(有点大材小用了啊,呵呵).今天使用时,却发现一个诡异的现象,在C语言入门经典(第4版)说正负数除数取余操作的差别,就在Python上试验了一下,结果结成了完全不一样.下面 ...
- 并查集(Union-Find)
并查集(Union-Find) 并查集(Union-Find) 1.初始化 2.查询 3.合并 4.平衡性优化,扁平化 5.按秩合并 6.路径压缩 7.代码 常用模板 [★ 547. 省份数量](ht ...
最新文章
- TensorFlow基础10-(误差反向传播算法以及实现多层神经网络)
- 以太主义的创始人维塔利克·布特林(Vitalik嫩模 Butlin)被称为“V神”
- Effective C#:避免使用ICloneable接口
- 代言男科、站台微商、变身神棍....这些科学家被捧了几十年,黑历史曝光后,让人三观尽毁......
- 频段表_5G频段范围之:频段3.3GHz-4.2GHz (n77,n78)
- Python爬虫:该如何学习数据爬虫
- Intel 64/x86_64/IA-32/x86处理器 - 锁原子操作(2) - 总线封锁/缓存封锁
- mac下Python2运行SparkSQL
- javacript IO
- 王思聪吃热狗表情包怎么制作
- 黑客帝国中比较酷炫的代码雨的实现
- 喜提JDK的BUG一枚!多线程的情况下请谨慎使用这个类的stream遍历。
- 如何在Excel中快速调整列宽
- Heat Map在生物信息学中的应用
- 移动视频录传-公网对讲APP-MCP常见操作说明
- Python基础01 Hello World!
- 查询和01号的同学学习的课程完全相同的其他同学的信息的优化
- onvif python 音视频_python3控制基于onvif的安防摄像头
- org.hibernate.QueryException: Unmatched braces for alias path 解决方案
- PYNQ-Z2上手笔记之系统安装
热门文章
- Unity3D学习(七):Unity多重采样抗锯齿设置无效的解决办法
- Linux下使用NTFS格式移动硬盘
- VS 2015 开发Android底部导航条----[实例代码,多图]
- 软件工程---团队作业四
- 屏蔽Xcode 8“烦人”的日志输出
- Tomcat 7 DBCP 配置(MySQL)
- 手机计算机快速切换功能,新功能!手势导航快速切换应用功能上线~
- java 检查bytebuf长度_Java学习笔记16-Netty缓冲区ByteBuf详解
- hystrix 单独使用_Spring cloud微服务架构-Hystrix工作原理(微服务故障熔断)
- 【数据结构与算法】之深入解析“有效的括号”的求解思路与算法示例