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

【Leetcode 每日一题】3266. K 次乘运算后的最终数组 II

问题背景

给你一个整数数组 n u m s nums nums,一个整数 k k k 和一个整数 m u l t i p l i e r multiplier multiplier
你需要对 n u m s nums nums 执行 k k k 次操作,每次操作中:

  1. 找到 n u m s nums nums 中的 最小 x x x,如果存在多个最小值,选择最 前面 的一个。
  2. x x x 替换为 x × m u l t i p l i e r x \times multiplier x×multiplier

请你返回执行完 k k k 次乘运算之后,最终的 n u m s nums nums 数组。

数据约束

  • 1 ≤ n u m s . l e n g t h ≤ 1 0 4 1 \le nums.length \le 10 ^ 4 1nums.length104
  • 1 ≤ n u m s [ i ] ≤ 1 0 9 1 \le nums[i] \le 10 ^ 9 1nums[i]109
  • 1 ≤ k ≤ 1 0 9 1 \le k \le 10 ^ 9 1k109
  • 1 ≤ m u l t i p l i e r ≤ 1 0 6 1 \le multiplier \le 10 ^ 6 1multiplier106

解题过程

题干和昨天一样,但是数据规模大了很多,暴力解一定会超时。
一般的做法 已经分析过了,算法上的重点还是堆模拟和 快速幂。

具体实现

class Solution {private static final int MOD = 1000000007;public int[] getFinalState(int[] nums, int k, int multiplier) {// 特判乘子为 1 的情形,避免多余的计算if(multiplier == 1) {return nums;}int n = nums.length;int max = 0;// 用最小堆来模拟操作,其中存储数组中每个元素和它的下标Queue<long[]> heap = new PriorityQueue<>((o1, o2) -> o1[0] != o2[0] ? Long.compare(o1[0], o2[0]) : Long.compare(o1[1], o2[1]));for(int i = 0; i < n; i++) {max = Math.max(max, nums[i]);heap.offer(new long[] {nums[i], i});}// 达到统一处理的条件之前,先进行若干次操作,更新堆for(; k > 0 && heap.peek()[0] < max; k--) {long[] cur = heap.poll();cur[0] *= multiplier;heap.offer(cur);}// 用快速幂计算结果,根据堆中的元素更新数组for(int i = 0; i < n; i++) {long[] cur = heap.poll();nums[(int) cur[1]] = (int) (cur[0] % MOD * pow(multiplier, k / n + (i < k % n ? 1 : 0)) % MOD);}return nums;}// 快速幂private long pow(long x, int n) {long res = 1;while(n != 0) {if((n & 1) == 1) {res = res * x % MOD;}x = x * x % MOD;n >>>= 1;}return res;}
}

相关文章:

【Leetcode 每日一题】3266. K 次乘运算后的最终数组 II

问题背景 给你一个整数数组 n u m s nums nums&#xff0c;一个整数 k k k 和一个整数 m u l t i p l i e r multiplier multiplier。 你需要对 n u m s nums nums 执行 k k k 次操作&#xff0c;每次操作中&#xff1a; 找到 n u m s nums nums 中的 最小 值 x x x&a…...

etcd集群常见日志

1、节点失去领导者 {"level":"info","ts":"2024-05-07T01:54:04.948Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 9afce9447872453 lost le…...

【漫话机器学习系列】005.神经网络的结构(architecture on the neural network)

神经网络&#xff08;Neural Network&#xff09;是一种模拟人脑神经系统的计算模型&#xff0c;由大量相互连接的神经元&#xff08;节点&#xff09;组成&#xff0c;广泛应用于深度学习和机器学习领域。以下是神经网络的基本结构及关键组成部分。 1. 神经网络的基本组成 一…...

基于 Couchbase 数据仓库元数据管理的可行性方案

在大数据体系中&#xff0c;元数据管理是数据治理的关键一环。以下是一套元数据管理的可行性方案&#xff0c;适合你的当前架构设计&#xff08;基于 Couchbase 数据仓库&#xff09;并支持高效管理数据的分层与结构。 1. 元数据管理的目标 统一数据管理&#xff1a;清晰描述 …...

SpringBoot:快速构建微服务应用

一、SpringBoot简介 什么是SpringBoot 是由Pivotal团队提供的快速开发框架。它基于Spring框架&#xff0c;可以用于快速构建微服务应用程序。SpringBoot提供了一种快速、便捷的方式来启动和配置一个基于Spring的应用程序&#xff0c;它封装了很多常用的配置&#xff0c;简化了开…...

汽车嵌入式软件构建高效技术团队的全面思考

在汽车嵌入式软件开发领域&#xff0c;构建一支高效的通用技术团队至关重要。这类团队负责为各种项目提供可复用、标准化的技术基石&#xff0c;从而提高开发效率、降低成本并确保产品质量。构建这样的团队需要从技术能力、角色分工、标准化与复用、流程管理与质量保证、工具和…...

【跨库查询、多库查询】.NET开源 ORM 框架 SqlSugar 系列

文章目录 一、跨库方式1&#xff1a;跨库导航二、手动跨库查询三、同服务器&#xff1a;自动查询跨库查询3.1 Mysql和SqlServer自动3.2 自动: PgSql跨Scheme查询3.3 其他库同服务器 四、跨服务器&#xff1a;自动跨库查询4.1 配置SqlServer dblink4.2 配置 Oracle dblink4.3 配…...

智能人体安全防护:3D 视觉技术原理、系统架构与代码实现剖析

随着工业化程度的提高&#xff0c;生产安全已成为企业关注的重点。尤其是在一些存在禁区的工业厂区和车间&#xff0c;人员误入或违规进入将带来严重的安全隐患。为了解决这一问题&#xff0c;迈尔微视推出了智能人体安全检测解决方案&#xff0c;为企业提供全方位的人员安全监…...

第24周:文献阅读

目录 摘要 Abstract 一、现有问题 二、提出方法 三、创新点 模型结构创新 强化学习与GAN结合 属性特征与通顺性优化 四、方法论 生成对抗网络&#xff08;GAN&#xff09; 强化学习&#xff08;RL&#xff09; 模型组件 五、实验研究 数据集 数据预处理 评价指…...

yolov8 转华为昇腾om脚本

目录 yolov8 转华为昇腾 om脚本 测试ok 推理demo: yolov8 转华为昇腾 om脚本 测试ok import sys import osos.chdir(os.path.dirname(os.path.abspath(__file__)))import torchcurrent_dir = os.path.dirname(os.path.abspath(__file__))paths = [os.path.abspath(__file__)…...

分布式事物XA、BASE、TCC、SAGA、AT

分布式事务——Seata 一、Seata的架构&#xff1a; 1、什么是Seata&#xff1a; 它是一款分布式事务解决方案。官网查看&#xff1a;Seata 2.执行过程 在分布式事务中&#xff0c;会有一个入口方法去调用各个微服务&#xff0c;每一个微服务都有一个分支事务&#xff0c;因…...

域名信息收集(小迪网络安全笔记~

附&#xff1a;完整笔记目录~ ps&#xff1a;本人小白&#xff0c;笔记均在个人理解基础上整理&#xff0c;若有错误欢迎指正&#xff01; 2.1 域名信息收集 引子&#xff1a;上一章介绍了服务器的信息收集。本篇则介绍在面对存在Web资产企业时&#xff0c;其域名信息该如何收…...

力扣-图论-13【算法学习day.63】

前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程&#xff08;例如想要掌握基础用法&#xff0c;该刷哪些题&#xff1f;&#xff09;我的解析也不会做的非常详细&#xff0c;只会提供思路和一些关键点&#xff0c;力扣上的大佬们的题解质量是非…...

【设计模式】如何用C++实现观察者模式【发布订阅机制】

【设计模式】如何用C实现观察者模式【发布订阅机制】 一、问题背景 代码质量影响生活质量。最近工作中频繁接触各种设计模式&#xff0c;深刻体会到优秀的设计模式不仅能显著降低后续维护的压力&#xff0c;还能提升开发效率。观察者模式作为一种降低耦合度、提高扩展性的利器…...

【LC】2717. 半有序排列

题目描述&#xff1a; 给你一个下标从 0 开始、长度为 n 的整数排列 nums 。 如果排列的第一个数字等于 1 且最后一个数字等于 n &#xff0c;则称其为 半有序排列 。你可以执行多次下述操作&#xff0c;直到将 nums 变成一个 半有序排列 &#xff1a; 选择 nums 中相邻的两…...

AI智算-k8s部署大语言模型管理工具Ollama

文章目录 简介k8s部署OllamaOpen WebUI访问Open-WebUI 简介 Github&#xff1a;https://github.com/ollama/ollama 官网&#xff1a;https://ollama.com/ API&#xff1a;https://github.com/ollama/ollama/blob/main/docs/api.md Ollama 是一个基于 Go 语言开发的可以本地运…...

CloudberryDB(二) 演化路线图

CloudberryDB 制定了演化路线图&#xff08;https://github.com/orgs/cloudberrydb/discussions/369&#xff09;并在逐步改进&#xff0c;这是 Cloudberry Database 发挥独特价值之处。 计划、正在进行或已完成的一些工作。 支持轻松升级 PostgreSQL 内核版本。 原有 Greenp…...

《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(二)

《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(二) 你好,我是拉依达。 感谢所有阅读关注我的同学支持,目前博客累计阅读 27w,关注1.5w人。其中博客《最全Linux驱动开发全流程详细解析(持续更新)-CSDN博客》已经是 Linux驱动 相关内容搜索的推荐首位,感谢大家支持。 《拉…...

实现canal监控binlog日志再通过消息队列异步处理

一、简单步骤 实现Canal监控Binlog日志&#xff0c;并通过消息队列进行异步处理&#xff0c;步骤如下&#xff1a; 配置Canal&#xff1a;首先&#xff0c;需要配置Canal进行Binlog日志监控。可以通过Canal的官方文档了解如何配置Canal。 连接到Canal&#xff1a;使用Canal客户…...

Linux DNS 协议概述

1. DNS 概述 互联网中&#xff0c;一台计算机与其他计算机通信时&#xff0c;通过 IP 地址唯一的标志自己。此时的 IP 地址就类似于我们日常生活中的电话号码。但是&#xff0c;这种纯数字的标识是比较难记忆的&#xff0c;而且数量也比较庞大。例如&#xff0c;每个 IPv4 地址…...

太顶了!输入主题,这几款AI论文软件自动生成毕业论文初稿!

毕业季论文焦虑&#xff1f;还在为选题、查资料、写大纲、润色修改熬夜到凌晨&#xff1f;别担心&#xff0c;现在只需输入主题&#xff0c;几款AI论文工具就能自动生成图文并茂的毕业论文初稿&#xff0c;从开题到定稿全流程搞定&#xff01;千笔AI、ThouPen、豆包、DeepSeek、…...

PUBG罗技鼠标宏终极指南:从零配置到实战压枪的完整教程

PUBG罗技鼠标宏终极指南&#xff1a;从零配置到实战压枪的完整教程 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 在《绝地求生》这样的竞技射击…...

taotoken如何帮助初创团队以可控成本快速验证ai产品创意

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken如何帮助初创团队以可控成本快速验证AI产品创意 1. 初创团队验证AI创意的核心挑战 对于初创团队而言&#xff0c;验证一个…...

Nodejs开发者三步接入Taotoken,实现异步聊天补全

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Nodejs开发者三步接入Taotoken&#xff0c;实现异步聊天补全 对于使用Node.js进行开发的工程师来说&#xff0c;无论是构建前端应用…...

为持续运行的业务系统选择高可用大模型API服务

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为持续运行的业务系统选择高可用大模型API服务 在构建CRM、电商平台等需要永久在线、不容有失的业务系统时&#xff0c;集成大模型…...

别再死记硬背二进制转换了!用Python写个自动转换工具,顺便搞懂CPU是怎么算的

用Python打造二进制转换工具&#xff1a;从代码实践理解CPU运算本质 当我们在编程中遇到需要处理二进制数据时&#xff0c;是否曾对背后的计算机原理产生好奇&#xff1f;本文将通过构建一个Python数制转换工具&#xff0c;带你穿透代码表层&#xff0c;深入理解CPU如何处理二…...

GHelper:华硕笔记本性能调优的轻量级革命

GHelper&#xff1a;华硕笔记本性能调优的轻量级革命 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Expertbook, RO…...

如何用TranslucentTB实现Windows任务栏透明化:3分钟完成桌面美化终极指南

如何用TranslucentTB实现Windows任务栏透明化&#xff1a;3分钟完成桌面美化终极指南 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 你是…...

Word怎么转图片?免费在线转换工具对比|2026实用方案

Word文档转换为图片是职场和学习中常见的需求。无论是为了方便分享、制作演示素材&#xff0c;还是保护文档隐私&#xff0c;掌握多种转换方法都能大幅提升工作效率。本文将为你盘点2026年最实用的Word转图片在线工具&#xff0c;以及电脑和手机端的完整解决方案。为什么要把Wo…...

Ladybug天气数据分析工具:建筑环境设计的智能助手

Ladybug天气数据分析工具&#xff1a;建筑环境设计的智能助手 【免费下载链接】ladybug &#x1f41e; Core ladybug library for weather data analysis and visualization 项目地址: https://gitcode.com/gh_mirrors/lad/ladybug Ladybug是一个功能强大的Python天气数…...