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

Leetcode 3645. Maximum Total from Optimal Activation Order

  • Leetcode 3645. Maximum Total from Optimal Activation Order
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3645. Maximum Total from Optimal Activation Order

1. 解题思路

这一题我的思路上是一个滑动窗口的思路。

策略上来说的话就是尽可能多取,然后每次取尽可能取最大的数。因此,我们首先将所有的数字按照limit进行排序,然后对于相同的limit,按照val进行倒序排序,然后依次进行选取。

每一次选取,如果能选就直接选,然后更新当前active的数的状态即可。

2. 代码实现

给出python代码实现如下:

class Solution:def maxTotal(self, value: List[int], limit: List[int]) -> int:arr = sorted([(val, lmt) for val, lmt in zip(value, limit)], key=lambda x: (x[1], -x[0]))status = [0 for _ in arr]i, j, n = 0, 0, len(arr)active, ans = 0, 0while j < n:val, lmt = arr[j]if active < lmt:status[j] = 1ans += valactive += 1if active == lmt:while j < n and arr[j][1] == active:j += 1else:j += 1while i < j and arr[i][1] <= active:active -= status[i]i += 1return ans

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

http://www.dtcms.com/a/325069.html

相关文章:

  • vulnhub-drippingblues靶场攻略
  • VTA学习笔记
  • 实现MATLAB2024b和M文件关联(防止运行多个MATLAB)
  • iptables -F 与 iptables -X
  • GNN训练:本地训练数据准备
  • scikit-learn/sklearn学习|线性回归解读
  • 虚拟机安装ubuntu系统
  • C++多线程服务器
  • MySQL基础知识总结
  • MySQL 序列使用详细说明
  • RAG (Retrieval-Augmented Generation) 原理详解与实例
  • 专题二_滑动窗口_最小覆盖子串
  • 【lucene】BlockDocsEnum 跟BlockImpactsDocsEnum 的区别
  • C++入门学习5
  • Boost.Asio io_service 与 线程 的分析
  • playwright-mcp 项目全解析:从理论到实践
  • 消息队列系统测试报告
  • Effective C++ 条款33:避免遮掩继承而来的名称
  • 企业临时文件分享方案:基于本地加密的轻量级实现
  • Unity3D游戏中如何制作空气墙
  • 动态群签名-DGS:实现抗女巫攻击
  • eBay功能升级:卖家提升流量与转化的新契机
  • 深入解析NumPy广播机制:让不同形状的数组无缝运算
  • 【MySQL——第三章 :MySQL库表操作】
  • Redis 数据类型和单线程模型补充
  • HyDE 在 RAG 知识问答助手中的应用解析
  • CentOS7安装和使用Workbench
  • AtomicStampedReference解决方案
  • 基于python/django框架的车型识别系统
  • 复现论文《基于Retinex理论和深度学习的低照度图像增强算法研究》