1334.阈值距离内邻居最少的城市

​​题目来源:

        leetcode题目,网址:1334. 阈值距离内邻居最少的城市 - 力扣(LeetCode)

解题思路:

       利用贝尔曼-福德算法计算出每个节点到其余节点的最短距离后对符合条件的计数,返回计数最小且编号最大的城市。

解题代码:

class Solution {
public:int findTheCity(int n, vector<vector<int>>& edges, int distanceThreshold) {vector<vector<int>> matrix=getMatrix(n,edges);      //距离向量int res=0;                  //城市编号int min=10001;              //符合要求的其他城市数目for(int i=0;i<matrix.size();i++){int cnt=0;for(int j=0;j<n;j++){if(matrix[i][j]<=distanceThreshold){cnt++;}}cout<<i<<" "<<cnt<<endl;if(cnt<=min){res=i;min=cnt;}}return res;}vector<vector<int>> getMatrix(int n,vector<vector<int>>& edges){vector<vector<int>> res(n);    //初始不可达for(int i=0;i<n;i++){res[i]=getDistance(i,n,edges);}return res;}vector<int> getDistance(int i,int n,vector<vector<int>> edges){vector<int> res(n,10001);res[i]=0;bool flag=true;while(flag){flag=false;for(int i=0;i<edges.size();i++){if(res[edges[i][0]]+edges[i][2]<res[edges[i][1]]){res[edges[i][1]]=res[edges[i][0]]+edges[i][2];flag=true;}else if(res[edges[i][1]]+edges[i][2]<res[edges[i][0]]){res[edges[i][0]]=res[edges[i][1]]+edges[i][2];flag=true;}}}return res;   }
};
 

总结:

        把贝尔曼-福德算法和普里姆算法搞混了...... 代码可以优化一下,首先 最短距离超过阈值后就可返回,其次 a 节点到 b 节点的距离与 b 节点到 a 节点的距离相等,只需计算一次.

        官方题解给出了分别基于 Dijkstra 算法和 Floyd 算法的代码.

        


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/142172.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#截取范围

string[] strs new string[]{"1e2qe","23123e21","3ewqewq","4fewfew","5fsdfds"};var list strs[1..2];Range p 0..3;var list strs[Range];

【Python+requests+unittest+excel】实现接口自动化测试框架

一、框架结构&#xff1a; 工程目录 二、Case文件设计 三、基础包 base3.1 封装get/post请求&#xff08;runmethon.py&#xff09; 1 import requests2 import json3 class RunMethod:4 def post_main(self,url,data,headerNone):5 res None6 if header …

CSS:为什么看起来content-box更合理,但还是经常使用border-box?

当我们在进行网页布局时&#xff0c;经常会遇到content-box和border-box这两种盒子模型。虽然content-box看起来更合理&#xff0c;但我们却经常使用border-box。本文将解释为什么会出现这种情况&#xff0c;并详细介绍如何将一个盒子模型变成border-box。 开始 在网页开发中&…

微服务nacos实战入门

注册中心 在微服务架构中&#xff0c;注册中心是最核心的基础服务之一 主要涉及到三大角色&#xff1a; 服务提供者 ---生产者 服务消费者 服务发现与注册 它们之间的关系大致如下&#xff1a; 1.各个微服务在启动时&#xff0c;将自己的网络地址等信息注册到注册中心&#x…

【科研新手指南4】ChatGPT的prompt技巧 心得

ChatGPT的prompt心得 写在最前面chatgpt咒语1&#xff08;感觉最好用的竟然是这个&#xff0c;简单方便快捷&#xff0c;不需要多轮对话&#xff09;chatgpt思维链2&#xff08;复杂任务更适用&#xff0c;简单任务把他弄复杂了&#xff09;机理chatgpt完整咒语1&#xff08;感…

Vue基础必备掌握知识点-Vue的指令系统讲解(二)

Vue指令系统继续讲解 v-for 作用:基于数据进行循环&#xff0c;多次渲染整个元素 数据类型:数组.对象.数字。。。 遍历数组语法&#xff1a;v-for"(item,index)" in 数组 item:表示每一项 index:则是表现下标 注意:v-for中的key值&#xff0c;key属性唯一的…

探秘亚马逊云科技海外服务器 | 解析跨境云计算的前沿技术与应用

目录 一、什么是海外服务器 二、不同主流海外云服务器对比 三、海外服务器的创建(亚马逊为例) 四、个人总结 一、什么是海外服务器 亚马逊云科技海外服务器&#xff1a;指的是部署在世界各地的亚马逊数据中心中的服务器设备。这些服务器提供了计算、存储、数据库、网络等各…

μC/OS-II---信号量管理1(os_sem.c)

目录 信号量管理信号量创建信号量删除获取/等待信号量发出信号量 信号量管理 信号量创建 OS_EVENT *OSSemCreate (INT16U cnt) {OS_EVENT *pevent; #if OS_CRITICAL_METHOD 3u /* Allocate storage for CPU status register */OS_CPU_SR cp…

【SA8295P 源码分析 (三)】123 - MAX96712 解串器 sensor_detect_device_channels() 探测 Camera Sensor加串器 过程详细解析

【SA8295P 源码分析】123 - MAX96712 解串器 sensor_detect_device_channels 探测 Camera Sensor加串器 过程详细解析 一、sensor_detect_device():MAX96712 检测解串器芯片是否存在,获取chip_id、device_revision二、sensor_detect_device_channels() :MAX96712 解串器 寄存…

mysql子查询

1、概念 子查询就是将一个查询&#xff08;子查询&#xff09;的结果作为另一个查询&#xff08;主查询&#xff09;的数据来源或判断条件的查询。 2、分类 按查询结果的行列数 标量子查询&#xff1a;结果只有一行一列列子查询&#xff1a;结果只有一列多行&#xff0c;也称…

vue通过span-method合并列之后,合并列显示在中间位置,根据鼠标滑动跟随展示

当vue通过span-method合并列之后&#xff0c;出现的合并列显示在中间位置&#xff0c;但是如果页面没有分页&#xff0c;如何进行展示呢&#xff0c;难道要滑到最下面去看吗&#xff0c;下面我们来根据鼠标滑动跟随展示 没有处理的合并页面 <template> <el-table:dat…

智能穿戴AR眼镜主板方案定制_MTK平台AR智能眼镜PCB板开发

AR智能眼镜&#xff0c;是采用了多种技术实现增强现实效果&#xff0c;是将虚拟信息和现实场景相结合的智能设备。 AR智能眼镜硬件上&#xff0c;包括多个传感器、显示装置和处理器等。其中&#xff0c;传感器用于捕捉用户的动作和环境信息&#xff0c;如摄像头、陀螺仪、加速…

Hadoop入门——数据分析基本步骤

文章目录 1.概述2.分析步骤2.1第一步 明确分析目的和思路2.2第二步 数据收集2.3第三步 数据处理2.4第四步 数据分析2.5第五步 数据展现2.6第六步 报告撰写 3.总结 1.概述 2.分析步骤 2.1第一步 明确分析目的和思路 2.2第二步 数据收集 2.3第三步 数据处理 2.4第四步 数据分析 …

Phar 文件上传以及反序列化

1.phar反序列化 触发条件&#xff1a; 1、能将phar文件上传 2、可利用函数 stat、fileatime、filectime、file_exists、file_get_contents、file_put_contents、file、filegroup、fopen、fileinode、filemtime、fileowner、fileperms、is_dir、is_executable、is_file、is_link…

BEVFormer 论文阅读

论文链接 BEVFormer BEVFormer&#xff0c;这是一个将Transformer和时间结构应用于自动驾驶的范式&#xff0c;用于从多相机输入中生成鸟瞰&#xff08;BEV&#xff09;特征利用查询来查找空间/时间&#xff0c;并相应地聚合时空信息&#xff0c;从而为感知任务提供更强的表示…

【ROS】RViz2源码下载、编译、运行

【ROS】郭老二博文之:ROS目录 1、源码下载 1.1 源码地址 ROS1对应的RViz源码:https://github.com/ros-visualization/rviz ROS2对应的RViz2源码:https://github.com/ros2/rviz 注意:在搜索RViz2源码时,使用傻度搜索的结果是对应ROS1的RViz,使用谷歌的搜索结果是正确的…

c++之json的创建,解析,增加,删除

c之json的创建&#xff0c;解析&#xff0c;增加,删除 1.存储方式,类型2.宏3.创建,保存json4.解析5.删除6.修改 1.存储方式,类型 typedef struct cJSON { struct cJSON *next,prev; / next是获取下一个元素数据&#xff0c;prev是获取前一个元素数据 */ struct cJSON child…

【华为OD机试高分必刷题目】生理周期(C++-模拟迭代实现)

🚀你的旅程将在这里启航!本专栏所有题目均包含优质解题思路,高质量解题代码,详细代码讲解,助你深入学习,高分通过! 文章目录 【华为OD机试高分必刷题目】生理周期(C++-模拟迭代实现)题目描述解题思路java题解代码代码OJ评判结果代码讲解寄语【华为OD机试高分必刷题目…

NLP---文本前期预处理的几个步骤

1、读取文本 text1 """ Football is a family of team sports that involve, to varying degrees, kicking a ball to score a goal. Unqualified, the word football is understood to refer to whichever form of football is the most popular in the reg…

13.利用辗转相除法求两个整数的最大公约数和最小公倍数。如96,36

文章目录 前言一、题目描述 二、题目分析 三、解题 前言 本系列为循环结构编程题&#xff0c;点滴成长&#xff0c;一起逆袭。 一、题目描述 利用辗转相除法求两个整数的最大公约数和最小公倍数,如96,36 二、题目分析 最小公倍数(输入的两个数之积)除(它们的最大公约数) 三…