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

LeetCode 2374.边积分最高的节点:模拟

【LetMeFly】2374.边积分最高的节点:模拟

力扣题目链接:https://leetcode.cn/problems/node-with-highest-edge-score/

给你一个有向图,图中有 n 个节点,节点编号从 0n - 1 ,其中每个节点都 恰有一条 出边。

图由一个下标从 0 开始、长度为 n 的整数数组 edges 表示,其中 edges[i] 表示存在一条从节点 i 到节点 edges[i]有向 边。

节点 i边积分 定义为:所有存在一条指向节点 i 的边的节点的 编号 总和。

返回 边积分 最高的节点。如果多个节点的 边积分 相同,返回编号 最小 的那个。

 

示例 1:

输入:edges = [1,0,0,0,0,7,7,5]
输出:7
解释:
- 节点 1、2、3 和 4 都有指向节点 0 的边,节点 0 的边积分等于 1 + 2 + 3 + 4 = 10 。
- 节点 0 有一条指向节点 1 的边,节点 1 的边积分等于 0 。
- 节点 7 有一条指向节点 5 的边,节点 5 的边积分等于 7 。
- 节点 5 和 6 都有指向节点 7 的边,节点 7 的边积分等于 5 + 6 = 11 。
节点 7 的边积分最高,所以返回 7 。

示例 2:

输入:edges = [2,0,0,2]
输出:0
解释:
- 节点 1 和 2 都有指向节点 0 的边,节点 0 的边积分等于 1 + 2 = 3 。
- 节点 0 和 3 都有指向节点 2 的边,节点 2 的边积分等于 0 + 3 = 3 。
节点 0 和 2 的边积分都是 3 。由于节点 0 的编号更小,返回 0 。

 

提示:

  • n == edges.length
  • 2 <= n <= 105
  • 0 <= edges[i] < n
  • edges[i] != i

解题方法:模拟

遍历每条边,假设边 i i i的值为 a a a,就令 s c o r e [ a ] + = i score[a]+=i score[a]+=i

其中 s c o r e score score是一个分数数组,默认值全部为 0 0 0

最终返回所有分数中最大的(若有同样大的则返回编号较小的那个)即为答案。

  • 时间复杂度 O ( l e n ( e d g e s ) ) O(len(edges)) O(len(edges))
  • 空间复杂度 O ( l e n ( e d g e s ) ) O(len(edges)) O(len(edges))

AC代码

C++
typedef long long ll;
class Solution {
public:int edgeScore(vector<int>& edges) {vector<ll> score(edges.size());ll M = 0;int ans = -1;for (int i = 0; i < edges.size(); i++) {score[edges[i]] += i;if (score[edges[i]] > M) {M = score[edges[i]];ans = edges[i];} else if (score[edges[i]] == M) {ans = min(ans, edges[i]);}}return ans;}
};
Python
from typing import Listclass Solution:def edgeScore(self, edges: List[int]) -> int:scores = [0] * len(edges)M, ans = 0, -1for edge, th in enumerate(edges):scores[th] += edgeif scores[th] > M or scores[th] == M and th < ans:M, ans = scores[th], threturn ans

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

Tisfy:https://letmefly.blog.csdn.net/article/details/142433653

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【标准库的典型内容】std::declval
  • 使用HTML和CSS制作网页的全面指南
  • Windows X86 远线程注入问题解惑
  • Python实现图形学光栅化的Bresenham算法
  • Linux通过yum安装Docker
  • C高级day4
  • VulnHub-Bilu_b0x靶机笔记
  • 《在华为交换机上配置防止 ARP 攻击》
  • 对商品分类系统的若干问题的思考
  • python编程,把所有子目录和文件输出到文本文件
  • 基于JAVA+SpringBoot+Vue的线上辅导班系统的开发与设计
  • 基于CNN的10种物体识别项目
  • 2.《DevOps》系列K8S部署CICD流水线之部署NFS网络存储与K8S创建StorageClass
  • [leetcode刷题]面试经典150题之6轮转数字(简单)
  • 【C++篇】走进C++标准模板库:STL的奥秘与编程效率提升之道
  • ES6核心特性
  • Java读取Properties文件的六种方法
  • JS基础之数据类型、对象、原型、原型链、继承
  • leetcode388. Longest Absolute File Path
  • 初识 beanstalkd
  • 手写一个CommonJS打包工具(一)
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 异步
  • elasticsearch-head插件安装
  • ​你们这样子,耽误我的工作进度怎么办?
  • ###项目技术发展史
  • #includecmath
  • #Linux(权限管理)
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #pragma 指令
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (0)Nginx 功能特性
  • (1)虚拟机的安装与使用,linux系统安装
  • (152)时序收敛--->(02)时序收敛二
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (arch)linux 转换文件编码格式
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (day6) 319. 灯泡开关
  • (八)Flink Join 连接
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (回溯) LeetCode 78. 子集
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (一)基于IDEA的JAVA基础1
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • .apk文件,IIS不支持下载解决
  • .net 后台导出excel ,word
  • .Net的DataSet直接与SQL2005交互
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .NET框架
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • [20140403]查询是否产生日志
  • [383] 赎金信 js
  • [8-27]正则表达式、扩展表达式以及相关实战
  • [CTO札记]盛大文学公司名称对联