Leetcode 3495. Minimum Operations to Make Array Elements Zero

  • Leetcode 3495. Minimum Operations to Make Array Elements Zero
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3495. Minimum Operations to Make Array Elements Zero

1. 解题思路

这一题的话核心就是统计对任意自然数 n n n,从 1 1 1 n n n当中所有的数字对于 4 4 4的阶数之和,用数学公式表达就是:
f ( n ) = ∑ i = 1 n ⌈ l o g 4 ( i ) ⌉ f(n) = \sum\limits_{i=1}^{n} \lceil\mathop{log}_4(i)\rceil f(n)=i=1nlog4(i)⌉

当然,直接的计算这个问题还是比较复杂的,不过我们可以通过迭代的方式对其进行计算,显然 1 , 2 , 3 1,2,3 1,2,3三个数可以一次操作直接处理了,对于剩余的 4 4 4 n n n,我们可以按照对其 4 4 4的余数进行分组,然后进行一次除以 4 4 4的操作,从而得到 4 4 4 1 1 1 ⌊ n 4 ⌋ \lfloor\frac{n}{4}\rfloor 4n的数,这样,我们就将问题简化到从求 1 1 1 n n n变成了求 1 1 1 ⌊ n 4 ⌋ \lfloor\frac{n}{4}\rfloor 4n了。迭代我们即可得到我们最终的问题的解。

然后,有了上述函数 f ( n ) f(n) f(n)之后,事实上我们就得到了任意范围 [ l , r ] [l,r] [l,r]只能的 4 4 4的阶数的和 s s s,而要使之变为 0 0 0,其所需要的操作次数事实上就是 ⌈ s 2 ⌉ \lceil\frac{s}{2}\rceil 2s

综上,我们将其翻译为代码语言即可。

2. 代码实现

给出python代码实现如下:

@lru_cache(None)
def count4(n):if n < 4:return nans = 3for r in range(4):k = (n-r) // 4ans += k + count4(k)return ansclass Solution:def minOperations(self, queries: List[List[int]]) -> int:ans = 0for l, r in queries:need = count4(r)-count4(l-1)ans += (need+1)//2return ans

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

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

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

相关文章

Vue 3 + TypeScript 实现视频播放与字幕功能:集成西瓜播放器 XGPlayer

文章目录 1. 前言&#xff1a;视频播放器的重要性2. 准备工作2.1 安装 Vue 3 项目2.2 安装 XGPlayer 和相关依赖 3. 实现视频播放3.1 初始化 XGPlayer 4. 添加字幕功能4.1 配置字幕 4.2 字幕文件格式5. 增加交互性完整的代码&#xff0c;仅供参考6. 总结 在现代 Web 开发中&…

MacOS安装 nextcloud 的 Virtual File System

需求 在Mac上安装next cloud实现类似 OneDrive 那样&#xff0c;文件直接保存在服务器&#xff0c;需要再下载到本地。 方法 在 官网下载Download for desktop&#xff0c;注意要下对版本&#xff0c;千万别下 Mac OS默认的那个。 安装了登录在配置过程中千万不要设置任何同…

.NET 9 彻底改变了 API 文档:从 Swashbuckle(Swagger) 到 Scalar

示例代码下载&#xff1a;https://download.csdn.net/download/hefeng_aspnet/90404652 摘要 API 文档是现代软件开发的支柱。随着 .NET 9 从 Swashbuckle 转向 Microsoft.AspNetCore.OpenApi&#xff0c;开发人员需要新的策略来保持高效。本文探讨了这些变化&#xff0c;并介…

深入剖析Java虚拟机(JVM):从零开始掌握Java核心引擎

&#x1f4cc; 引言&#xff1a;为什么每个Java开发者都要懂JVM&#xff1f; 想象你是一名赛车手&#xff0c;Java是你的赛车&#xff0c;而JVM就是赛车的引擎。 虽然你可以不关心引擎内部构造就能开车&#xff0c;但要想在比赛中获胜&#xff0c;必须了解引擎如何工作&#…

怎么连接linux服务器的桌面

一、使用 VNC&#xff08;Virtual Network Computing&#xff09; 1. 服务器端配置&#xff08;Ubuntu 22.04 示例&#xff09; # 安装 VNC 服务器&#xff08;以 TigerVNC 为例&#xff09; sudo apt update sudo apt install tigervnc-standalone-server tigervnc-xorg-ext…

elasticsearch 通用笔记

文章目录 一、前言二、内容说明1、目录简介2、本文例子前提内容 三、操作内容1、设置ES为服务2、查看健康度参数解析 3、索引相关查询3.1、查询指定索引内容3.1.1、匹配查询3.1.2、精确匹配&#xff08;不尝试分词&#xff09;3.1.3、范围查询3.1.4、id查询3.1.5、通配符及前缀…

windows安装配置FFmpeg教程

1.先访问官网&#xff1a;https://www.gyan.dev/ffmpeg/builds/ 2.选择安装包Windows builds from gyan.dev 3. 下滑找到release bulids部分&#xff0c;选择ffmpeg-7.0.2-essentials_build.zip 4. 然后解压将bin目录添加path系统变量&#xff1a;\ffmpeg-7.0.2-essentials_bui…

强大的AI网站推荐(第二集)—— V0.dev

网站&#xff1a;V0.dev 号称&#xff1a;前端开发神器&#xff0c;专为开发人员和设计师设计&#xff0c;能够使用 AI 生成 React 代码 博主评价&#xff1a;生成的UI效果太强大了&#xff0c;适合需要快速创建UI原型的设计师和开发者 推荐指数&#xff1a;&#x1f31f;&…

c#知识点补充4

1.发布者订阅模式 发布者 订阅者 俩者直接的关联使用

01、聊天与语言模型

一、简单说明模型 LLM目前有两种API提供 LanguageModel&#xff1a;接收一个a作为输入并返回一个b作为输出&#xff0c;这种是已经过时的ChatLanguageModel&#xff1a;接收多个输入&#xff0c;然后返回相应的输出 ChatLanguaggeModel是LangChain4j中LLM交互低级API&#x…

SQL的DCL,DDL,DML和DQL分别是什么

SQL&#xff08;Structured Query Language&#xff09;包括以下四种主要语言类别&#xff0c;分别用于不同的数据库操作&#xff1a; 1. DCL&#xff08;Data Control Language&#xff0c;数据控制语言&#xff09; 用于控制数据库访问权限和安全。 常见命令&#xff1a; …

spring boot maven一栏引入本地包

1、在项目跟目录下建立文件夹&#xff0c;比如libs 2、maven依赖 <dependency><groupId>com.hikvision.ga</groupId><artifactId>artemis-http-client</artifactId><version>1.1.10</version><scope>system</scope>&l…

连续型随机变量及其分布

连续型随机变量 数学公式可以看作一门精确描述事物的语言&#xff0c;比语言尤其是汉语的模糊性精确多了&#xff01;离散型数据的处理可以通过枚举和相加进行处理。而连续型数据则没有办法这样处理。我们必须要通过函数和取值区间还有微积分计算。 &#xff3b;定义1&#x…

AI重构SEO关键词优化路径

内容概要 人工智能技术的深度应用正在推动SEO优化进入全新阶段。传统关键词优化依赖人工经验与静态规则&#xff0c;存在效率瓶颈与策略滞后性缺陷。AI技术通过智能语义分析系统&#xff0c;能够穿透表层词汇限制&#xff0c;精准捕捉用户搜索意图的语义关联网络&#xff0c;结…

turnjs图册翻书效果

npm install https://github.com/igghera/turn.js.git //或者 npm install turn.js //import $ from "jquery"; //记得引入jquery import turn.js; // 引入 Turn.jsimport turn from "/utils/turn.min.js";// 引入 Turn.jsinitBook(length) {var that thi…

用PostgreSQL玩转俄罗斯方块:当SQL成为游戏引擎

当DBA开始摸鱼2025年某深夜&#xff0c;一位不愿透露姓名的DBA为了在监控大屏上隐藏游戏行为&#xff0c;竟用SQL实现了俄罗斯方块&#xff01;从此&#xff0c;SELECT成了方向键&#xff0c;UPDATE成了旋转指令&#xff0c;DELETE成了消除大招。本文将揭秘这个疯狂项目的技术内…

计算机网络层超全解析:从IP协议到路由算法

&#x1f310; &#xff08;专业详解生活化类比&#xff0c;逻辑一镜到底&#xff09; &#x1f4d6; 网络层的核心使命 核心任务&#xff1a;在不同网络间为数据包选择最佳路径&#xff0c;实现端到端通信。 类比&#xff1a;快递公司总部&#xff08;网络层&#xff09;根据…

代码随想录算法训练营第38天 | 322. 零钱兑换 279.完全平方数 139.单词拆分 背包问题总结

322. 零钱兑换 如果求组合数就是外层for循环遍历物品&#xff0c;内层for遍历背包。 如果求排列数就是外层for遍历背包&#xff0c;内层for循环遍历物品。 钱币有顺序和没有顺序都可以&#xff0c;都不影响钱币的最小个数。 视频讲解&#xff1a;动态规划之完全背包&#xff0…

关于网络的一点知识(持续更新)

1、IP地址和子网掩码、端口号: IP地址是设备在网络上的地址,相当于一栋房子的门牌号。子网掩码相当于房子所在的街道。同一条街道的房子间是通过街道直通的,主人可以互相拜访。 举个例子,如下图所示。 说明:将两台设备的IP和子网掩码转化为二进制,然后将各自的IP地址和…

Idea中使用Git插件_合并当前分支到master分支_冲突解决_很简单---Git工作笔记005

由于之前用svn习惯了,用的git少,其实在idea中使用git,解决冲突,合并分支,非常的简单,一起来看一下吧. 一定要注意操作之前,一定要确保自己的分支代码,都已经commit提交了,并且push到远程了. 不要丢东西. 可以看到首先,在idea的左下角有个 git,点开以后 可以看到有显示的分支…