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

Leetcode 3068. Find the Maximum Sum of Node Values

  • Leetcode 3068. Find the Maximum Sum of Node Values
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3068. Find the Maximum Sum of Node Values

1. 解题思路

这一题虽然标记为一道hard的题目,但其实就是一个脑筋急转弯的题目。

我们只需要想明白一点即可:

  • 由于异或操作满足x^y^y = x,对于一棵联通树,我们总可以通过有限次对相邻边地操作,使得任意两点(u, v)转变为(u^z, v^z),而其他所有的节点都不发生变化。

因此,我们只需要计算出所有点如果进行异或操作之后可以得到的改变量,然后将其从大到小进行排序,两两配对之后考察最大能够获得多少累积增长即可。

2. 代码实现

给出python代码实现如下:

class Solution:def maximumValueSum(self, nums: List[int], k: int, edges: List[List[int]]) -> int:delta = sorted([(x ^ k) - x for i, x in enumerate(nums)], reverse=True)i, n = 0, len(delta)ans = sum(nums)while i+1 < n and delta[i] + delta[i+1] > 0:ans += delta[i] + delta[i+1]i += 2return ans

提交代码评测得到:耗时972ms,占用内存28MB。

http://www.lryc.cn/news/311292.html

相关文章:

  • 用 Dockerfile为镜像添加SSH服务
  • Maven能解决什么问题?为什么要用?
  • 【Golang星辰图】探索网络和HTTP的奇妙世界:使用Go语言打造高性能应用
  • [C语言]——操作符
  • iview碰到的一些问题总结
  • 【Python笔记-FastAPI】后台任务+WebSocket监控进度
  • 力扣hot100:15.三数之和(双指针/哈希表)
  • VMware虚拟机使用Windows共享的文件夹
  • 利用Python自动化日常任务
  • Android的多线程和异步处理
  • MySQL-----视图
  • LeetCode-02
  • 瑞_Redis_Redis的Java客户端
  • Cmake的使用
  • linux系统ELK组件介绍
  • 回归预测 | Matlab实现BiTCN基于双向时间卷积网络的数据回归预测
  • Tailscale中继服务derper使用docker-compose部署
  • Spring Cloud 实战系列之 Zuul 微服务网关搭建及配置
  • 【数据结构】队列
  • 学习JAVA的第十三天(基础)
  • C++--机器人的运动范围
  • 深度学习API——keras初学
  • Web APIs知识点讲解(阶段二)
  • 多平台拼音输入法软件的开发
  • Flutter学习7 - Dart 泛型
  • Git 基本操作 ⼯作区、暂存区、版本库
  • 利用Vue3的新API(customRef)实现防抖效果
  • 【Linux】在 Ubuntu 系统下使用 Screen 运行 Python 脚本
  • jxls——自定义命令设置动态行高
  • 前端面试练习24.3.2-3.3