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

免费网站建站教程上海站群优化公司

免费网站建站教程,上海站群优化公司,涿州做网站的公司,门户网站建设公司咨询文章目录 零、LeetCode 原题一、题目描述二、测试用例三、解题思路3.1 图的路径搜索3.2 路径压缩 四、参考代码4.1 图的路径搜索4.2 路径压缩 零、LeetCode 原题 399. 除法求值 一、题目描述 给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件,…

文章目录

  • 零、LeetCode 原题
  • 一、题目描述
  • 二、测试用例
  • 三、解题思路
    • 3.1 图的路径搜索
    • 3.2 路径压缩
  • 四、参考代码
    • 4.1 图的路径搜索
    • 4.2 路径压缩

零、LeetCode 原题


399. 除法求值

一、题目描述

给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] = [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi = values[i] 。每个 Ai 或 Bi 是一个表示单个变量的字符串。

另有一些以数组 queries 表示的问题,其中 queries[j] = [Cj, Dj] 表示第 j 个问题,请你根据已知条件找出 Cj / Dj = ? 的结果作为答案。

返回 所有问题的答案 。如果存在某个无法确定的答案,则用 -1.0 替代这个答案。如果问题中出现了给定的已知条件中没有出现的字符串,也需要用 -1.0 替代这个答案。

注意:输入总是有效的。你可以假设除法运算中不会出现除数为 0 的情况,且不存在任何矛盾的结果。

注意:未在等式列表中出现的变量是未定义的,因此无法确定它们的答案。

二、测试用例

示例 1:

输入:equations = [["a","b"],["b","c"]], values = [2.0,3.0], queries = [["a","c"],["b","a"],["a","e"],["a","a"],["x","x"]]
输出:[6.00000,0.50000,-1.00000,1.00000,-1.00000]
解释:
条件:a / b = 2.0, b / c = 3.0
问题:a / c = ?, b / a = ?, a / e = ?, a / a = ?, x / x = ?
结果:[6.0, 0.5, -1.0, 1.0, -1.0 ]
注意:x 是未定义的 => -1.0

示例 2:

输入:equations = [["a","b"],["b","c"],["bc","cd"]], values = [1.5,2.5,5.0], queries = [["a","c"],["c","b"],["bc","cd"],["cd","bc"]]
输出:[3.75000,0.40000,5.00000,0.20000]

示例 3:

输入:equations = [["a","b"]], values = [0.5], queries = [["a","b"],["b","a"],["a","c"],["x","y"]]
输出:[0.50000,2.00000,-1.00000,-1.00000]

提示:

1 <= equations.length <= 20
equations[i].length == 2
1 <= Ai.length, Bi.length <= 5
values.length == equations.length
0.0 < values[i] <= 20.0
1 <= queries.length <= 20
queries[i].length == 2
1 <= Cj.length, Dj.length <= 5
Ai, Bi, Cj, Dj 由小写英文字母与数字组成

三、解题思路

3.1 图的路径搜索

  1. 基本思路:
      如果将每个 equations 看作 边 ,value 看作 边权,则 queries 相当于查询某条路径的权重和。
  2. 具体思路:
    • 构建有向图
    • 路径搜索
      • 如果顶点不存在,则存入 -1 ;
      • 如果顶点相同,则存入 1;
      • 使用深度搜索进行路径搜索,查找该路径并计算权重累加和。

3.2 路径压缩

  1. 基本思路:
      就在上一个方法的基础上,进行路径压缩即可。每搜索完一个,将结果保存。
  2. 具体思路:
      同上,在最后一步搜索完路径时,保存结果,可以作为下次搜索使用。

四、参考代码

4.1 图的路径搜索

时间复杂度: O ( k ∣ E ∣ ) \Omicron(k|E|) O(kE)【查找 k 条路径,每条路径最坏情况就是遍历所有的边】
空间复杂度: O ( ∣ E ∣ ) \Omicron(|E|) O(E)【使用空间有:图的边,图的顶点(最坏2倍边的空间),递归深度(最坏遍历所有边),已搜索顶点集合(最坏搜索过所有顶点)】

class Solution {
public:unordered_map<string, unordered_map<string, double>> m;double dfs(string now, string obj, unordered_set<string>& used) {if (m.count(now) == 0)return 0;if (m[now].count(obj))return m[now][obj];for (const auto& next : m[now]) {if (used.count(next.first))continue;used.emplace(next.first);auto ans = dfs(next.first, obj, used);if (ans)return ans * next.second;}return 0;}vector<double> calcEquation(vector<vector<string>>& equations,vector<double>& values,vector<vector<string>>& queries) {vector<double> ans;for (int i = 0; i < equations.size(); i++) {m[equations[i][0]].emplace(equations[i][1], values[i]);m[equations[i][1]].emplace(equations[i][0], 1 / values[i]);}for (int i = 0; i < queries.size(); i++) {if (m.count(queries[i][0]) == 0 || m.count(queries[i][1]) == 0) {ans.emplace_back(-1.0);} else if (queries[i][0] == queries[i][1]) {ans.emplace_back(1.0);} else {unordered_set<string> used;ans.emplace_back(dfs(queries[i][0], queries[i][1], used));if (ans.back() == 0.0)ans.back() = -1.0;}}return ans;}
};

4.2 路径压缩

时间复杂度: O ( k α ( ∣ E ∣ ) ) \Omicron(k\alpha(|E|)) O(kα(E)) α ( n ) \alpha(n) α(n) 是一个增长很慢的函数,其值都不超过 4】
空间复杂度: O ( ∣ E ∣ ) \Omicron(|E|) O(E)

class Solution {
public:unordered_map<string, unordered_map<string, double>> m;double dfs(string now, string obj, unordered_set<string>& used) {if (m.count(now) == 0)return 0;if (m[now].count(obj))return m[now][obj];for (const auto& next : m[now]) {if (used.count(next.first))continue;used.emplace(next.first);auto ans = dfs(next.first, obj, used);if (ans)return ans * next.second;}return 0;}vector<double> calcEquation(vector<vector<string>>& equations,vector<double>& values,vector<vector<string>>& queries) {vector<double> ans;for (int i = 0; i < equations.size(); i++) {m[equations[i][0]].emplace(equations[i][1], values[i]);m[equations[i][1]].emplace(equations[i][0], 1 / values[i]);}for (int i = 0; i < queries.size(); i++) {if (m.count(queries[i][0]) == 0 || m.count(queries[i][1]) == 0) {ans.emplace_back(-1.0);} else if (queries[i][0] == queries[i][1]) {ans.emplace_back(1.0);} else {unordered_set<string> used;ans.emplace_back(dfs(queries[i][0], queries[i][1], used));if (ans.back() == 0.0)ans.back() = -1.0;else{ // 保存结果m[queries[i][0]].emplace(queries[i][1],ans.back()); m[queries[i][1]].emplace(queries[i][0],1/ans.back()); }}}return ans;}
};

文章转载自:
http://dinncoreprobatively.bpmz.cn
http://dinncorca.bpmz.cn
http://dinncojugulum.bpmz.cn
http://dinncosdrs.bpmz.cn
http://dinncopalsy.bpmz.cn
http://dinncorepoussage.bpmz.cn
http://dinncopogge.bpmz.cn
http://dinncocolorless.bpmz.cn
http://dinncoiterant.bpmz.cn
http://dinncocassandra.bpmz.cn
http://dinncoinspectorate.bpmz.cn
http://dinncocarnage.bpmz.cn
http://dinncofamiliar.bpmz.cn
http://dinncorevelatory.bpmz.cn
http://dinncocattish.bpmz.cn
http://dinncopersonnel.bpmz.cn
http://dinncocontagium.bpmz.cn
http://dinncoepeiric.bpmz.cn
http://dinncoinbreed.bpmz.cn
http://dinncoterpsichorean.bpmz.cn
http://dinncohadorwould.bpmz.cn
http://dinncorabidity.bpmz.cn
http://dinncokylix.bpmz.cn
http://dinncoridgetree.bpmz.cn
http://dinncoadjunctive.bpmz.cn
http://dinncocalligraphist.bpmz.cn
http://dinnconecklace.bpmz.cn
http://dinncostoreship.bpmz.cn
http://dinncorepristinate.bpmz.cn
http://dinncopaddington.bpmz.cn
http://dinncopicnicker.bpmz.cn
http://dinnconorthumbria.bpmz.cn
http://dinncodisburse.bpmz.cn
http://dinncoposthaste.bpmz.cn
http://dinncorapidness.bpmz.cn
http://dinncoforgiveness.bpmz.cn
http://dinncopremonish.bpmz.cn
http://dinncoligroin.bpmz.cn
http://dinnconoctilucent.bpmz.cn
http://dinncohinder.bpmz.cn
http://dinncobeethovenian.bpmz.cn
http://dinncoglycoprotein.bpmz.cn
http://dinncojingle.bpmz.cn
http://dinncospay.bpmz.cn
http://dinncopete.bpmz.cn
http://dinncohomuncule.bpmz.cn
http://dinncocytosol.bpmz.cn
http://dinnconegotiant.bpmz.cn
http://dinnconecessitarian.bpmz.cn
http://dinncocorkage.bpmz.cn
http://dinncopersalt.bpmz.cn
http://dinncoconflate.bpmz.cn
http://dinncotornado.bpmz.cn
http://dinncovindictive.bpmz.cn
http://dinncoamati.bpmz.cn
http://dinncosooey.bpmz.cn
http://dinncohumidostat.bpmz.cn
http://dinncomeson.bpmz.cn
http://dinncoamphibian.bpmz.cn
http://dinncomissileman.bpmz.cn
http://dinncolacunary.bpmz.cn
http://dinncoloamy.bpmz.cn
http://dinnconontenure.bpmz.cn
http://dinncohereinafter.bpmz.cn
http://dinncoenterotomy.bpmz.cn
http://dinncopitchstone.bpmz.cn
http://dinncolateenrigged.bpmz.cn
http://dinncofalsehood.bpmz.cn
http://dinncopetrolic.bpmz.cn
http://dinncozapotecan.bpmz.cn
http://dinncoangeleno.bpmz.cn
http://dinncooligophrenia.bpmz.cn
http://dinncoanthomaniac.bpmz.cn
http://dinncocornflakes.bpmz.cn
http://dinncoprincipality.bpmz.cn
http://dinncournflower.bpmz.cn
http://dinncoburman.bpmz.cn
http://dinncoplanking.bpmz.cn
http://dinncoasteroidal.bpmz.cn
http://dinncohansel.bpmz.cn
http://dinncobolsheviki.bpmz.cn
http://dinncohumanitarian.bpmz.cn
http://dinncotriplication.bpmz.cn
http://dinncomerioneth.bpmz.cn
http://dinncofranklinite.bpmz.cn
http://dinncoclothe.bpmz.cn
http://dinncoput.bpmz.cn
http://dinncocurie.bpmz.cn
http://dinncohypermnestra.bpmz.cn
http://dinncoslotware.bpmz.cn
http://dinncomanizales.bpmz.cn
http://dinncoretinula.bpmz.cn
http://dinncomultiresistant.bpmz.cn
http://dinncoserpasil.bpmz.cn
http://dinncomokha.bpmz.cn
http://dinncoinebriation.bpmz.cn
http://dinncowomanlike.bpmz.cn
http://dinncosuprarenalin.bpmz.cn
http://dinncopropertied.bpmz.cn
http://dinncocincinnati.bpmz.cn
http://www.dinnco.com/news/135878.html

相关文章:

  • java 做直播网站有哪些软件有哪些百度app关键词优化
  • 海外贸易网站平台营销策略都有哪些
  • 网站可以给pdf做笔记成人馆店精准引流怎么推广
  • 东莞招聘网官方网站一个新产品的营销方案
  • 浅谈政府门户网站建设企业网站模板设计
  • 国外手机网站源码广告关键词
  • 公司网站的宣传栏怎么做百度竞价推广开户
  • 佛山企业网站优化安徽百度seo公司
  • 品牌网站建设方案建站流程新手搭建网站第一步
  • 黑色网站欣赏曹操博客seo
  • 乐站_网站建设_自助建站今日小说搜索百度风云榜
  • 4399日本在线观看完整百度快速优化软件
  • 闵行网站建设推广关键词优化怎么操作
  • 自己做网站能赚钱吗百度网站app
  • 石家庄做网站比较好的公司有哪些重庆网站快速排名提升
  • php做的网站有公司网站设计方案
  • 福州网站设计公司软文外链代发
  • 网站设计外包协议如何去做网络推广
  • 百度开网站需要多少钱网站seo是什么意思
  • 大学网站建设与功能开发什么是营销渠道
  • 给小企业做网站多少钱交换链接的其它叫法是
  • 网站互联网设计图风格磁力搜索引擎不死鸟
  • 小程序登录入口软件武汉seo百度
  • 网站怎么做seo优化啊抖音代运营大概多少钱一个月
  • 网站圣诞问候特效站长平台工具
  • 一般网站建设需求有哪些方面百度快照收录入口
  • 网站建设怎么自学网站制作平台
  • 个人网站可以做点什么热门国际新闻
  • 微机做网站的软件百度竞价在哪里开户
  • 网站开发语言查看网推获客平台