Leetcode 2968. Apply Operations to Maximize Frequency Score

  • Leetcode 2968. Apply Operations to Maximize Frequency Score
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:2968. Apply Operations to Maximize Frequency Score

1. 解题思路

这题说来惭愧,一开始自己没有搞定,不过看了大佬们的解答之后发现多少有点安慰,因为某种意义上来说,感觉也算是个知识点题目,知道了就很快,不知道的话就比较折腾了……

我一开始的思路的话就是滑动窗口,控制左右还有中间的target位置进行单向滑动,从而在 O ( N ) O(N) O(N)的时间复杂度内获得题目的答案。

不过这里的单向滑动的处理方式上没能想明白,主要难点在于中间target位置的选取上,没有想的很明白,无法确定移动方式确保不会出现来回摇摆的情况。

然后,看了大佬们的解答之后发现,这里事实上有一个非常浅显但是重要的结论:

  • 对于任何一组有序数组,永远是取中间值作为目标时可以使得 ∑ i = 1 n ∣ x i − x 0 ∣ \sum\limits_{i=1}^{n}|x_i - x_0| i=1nxix0达到最小值。

这个数学问题的证明事实上也不复杂,移动一个位置考察结果的变化关系即可快速得到结论。

因此,上述问题就只需要考察左右边界的单向滑动,而这个就比较简单了。

2. 代码实现

给出python代码实现如下:

class Solution:def maxFrequencyScore(self, nums: List[int], k: int) -> int:nums = sorted(nums)sums = list(accumulate(nums, initial=0))ans = 0l, r, n = 0, 0, len(nums)while l < n:while r < n:m = (l+r) // 2cost = (m-l) * nums[m] - (sums[m]-sums[l]) + (sums[r+1]-sums[m+1]) - (r-m) * nums[m]if cost > k:breakans = max(ans, r-l+1)r += 1l += 1return ans

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

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

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

相关文章

本地声明式缓存

SpringBootCaffeineRedis声明式缓存 最近接到一个项目&#xff0c;里面同时整合了Caffeine和Redis。 对于像验证码&#xff0c;或者对用户操作做一些限制的缓存&#xff0c;还有分布式锁等等操作就利用redis来缓存&#xff0c; 对于一些热点数据&#xff0c;为了降低数据库查…

Java语言真的跌落神坛了吗?

Java语言真的跌落神坛了吗&#xff1f; 在开始前我有一些资料&#xff0c;是我根据自己从业十年经验&#xff0c;熬夜搞了几个通宵&#xff0c;精心整理了一份「 Java的资料从专业入门到高级教程工具包」&#xff0c;点个关注&#xff0c;全部无偿共享给大家&#xff01;&#…

居民建筑能耗现状以及节能降耗方向

1我国居住建筑能耗统计情况 我国民用建筑能耗统计工作起步较晚。为了解和掌握民用建筑能源消耗情况&#xff0c;2007年住房和城乡建设部发布了《民用建筑能耗统计报表制度》(试行)[建科函(2007)271号]&#xff0c;自此我国民用建筑能耗统计工作正式展开&#xff0c;而城镇居住…

新增数据,某个字段的值总是保存不上问题解决

在系统中新增一条数据&#xff0c;某个字段的数据总是保存不上&#xff0c;但是没有报任何异常和错误&#xff0c;其他字段也都是正常的&#xff0c;通过抓包分析请求参数发现那个字段的值也没有传给后端&#xff0c;检查了前后端代码也没有排查到问题。百思不得其解&#xff0…

【算法与数据结构】455、LeetCode分发饼干

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;因为大饼干可以满足大胃口的孩子也必然可以满足小胃口的孩子&#xff0c;如果要尽可能的满足孩子的胃口…

Git的rebase和merge合并代码的区别

引言 Git的中rebase和merge都可以合并代码&#xff0c;那他们有什么相同和不同呢&#xff1f;本文来一次说清楚、说明白。 首先Git中的rebase和merge都是用于合并代码的方式&#xff0c;但它们有不同的工作原理和影响。 Merge&#xff08;合并&#xff09; 合并&#xff08;…

【智慧之窗】AI驱动产品探索

一.初识 ChatGPT ChatGPT 是由 OpenAI 开发的自然语言处理&#xff08;NLP&#xff09;模型&#xff0c;基于 GPT&#xff08;Generative Pre-trained Transformer&#xff09;架构。GPT 系列的模型旨在理解和生成自然语言文本。ChatGPT 专注于支持对话性任务&#xff0c;即与…

java的json解析

import com.alibaba.fastjson.*; public class JsonParser { public static void main(String[] args) { String jsonStr "{\"name\":\"John\", \"age\":30}"; // JSON字符串示例 // 将JSON字符串转换为JSONObject对象 JSONObje…

想做新程序员?马上用 GPT-4 编程,一切我们都替你搞好了!

// 打不过就加入。与其担心被 GPT-4 取代&#xff0c;不如现在就学习驾驭它。 &#xff08;GPT-3.5 和其他模型都不用怕&#xff0c;它们都不行&#xff0c;谁用谁知道……除了 Claude 我们还在测试中&#xff09; 文末有一键加入方法&#xff0c;国内用户也能无障碍使用—…

Ubuntu 20.04 prometheus prometheus-process-exporter

prometheus-process-exporter 监控系统架构方案 https://blog.csdn.net/weixin_45801289/article/details/126922395 sudo apt install prometheus-process-exporter prometheus-process-exporter_0.4.0ds-1_amd64.deb service prometheus-process-exporter status netstat …

中国一重集中采购平台的建设经历和系统亮点

中国一重前身为第一重型机器厂&#xff0c;是“一五”期间建设156项重点工程项目之一&#xff0c;始建于1954年&#xff0c;是中央管理的涉及国家安全和国民经济命脉的国有重要骨干企业之一&#xff0c;是国家创新型试点企业、国家高新技术企业&#xff0c;拥有国家级企业技术中…

大语言模型--数据

数据 大语言模型 数据WebText和OpenWebText数据集Colossal Clean Crawled Corpus&#xff08;C4&#xff09;Benchmark的数据污染问题GPT-3的数据集The Pile数据集 WebText和OpenWebText数据集 WebText数据集被用于训练GPT-2模型。其目标是获取既多样化又高质量的数据集。以前…

漏洞复现-iDocview doc/upload接口存在任意文件读取漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

SpringSecurity源码学习六:授权

目录 1. 用户权限2. 资源权限2.1 自定义资源权限2.2 权限注解2.2.1 默认注解2.2.2 自定义注解2.2.3 注解初始化和保存 3. 代码示例4. 源码解析4.1 投票器4.1.1 投票器不同实现类的含义4.1.2 默认投票器WebExpressionVoter 5. 总结 SpringSecurity的授权是依赖于过滤器FilterSec…

Postgresql源码(117)libpq的两套实现(socket/shm_mq)

libpq的通信方式 libpq提供了两套通信方式 socketshm_mq 分别实现在下面两个文件中 pqcomm.cpqmq.c 什么时候用socket通信&#xff1f; 除了下述并行场景&#xff0c;其他场景全部使用socket通信。 static const PQcommMethods PqCommSocketMethods {.comm_reset sock…

Spring boot 3.2 新特性介绍

1.增加了对Apache Pulsar的支持 使用方式参考 官网Messaging 2.增加了对虚拟线程的支持 需要jdk 21 版本 在spring-boot 项目中 通过设置 spring.threads.virtual.enabledtrue 即可开启虚拟线程。虚拟线程开启后作用域如下 1.Servlet Web Servers 当启用虚拟线程时&…

174.【2023年华为OD机试真题(C卷)】开源项目热榜(一般排序算法实现JavaPythonC++JS)

🚀你的旅程将在这里启航!本专栏所有题目均包含优质解题思路,高质量解题代码,详细代码讲解,助你深入学习,深度掌握! 文章目录 【华为OD机试AB必刷题目】题目描述解题思路Python题解代码JAVA题解代码C/C++题解代码JS题解代码代码OJ评判结果代码讲解Python题解代码讲解JAV…

【Animatediff】制作 玫瑰,鲜花, 香水, 动态LOGO (结尾》图片停留)

提示&#xff1a;也可以后期加入文字。 电商\lofi_v4.safetensors [9462506675] 》制作初始图片 1&#xff1a;输入提示词 流动的烟雾&#xff0c;飘落的花瓣&#xff0c;优雅的香水瓶周围环绕着柔软的钻石&#xff0c;烟&#xff0c;红色浪漫的玫瑰:1.5,柔和的背光营造梦幻的效…

解决el-table组件中,分页后数据的勾选、回显问题?

问题描述&#xff1a; 1、记录一个弹窗点击确定按钮后&#xff0c;table列表所有勾选的数据信息2、再次打开弹窗&#xff0c;回显勾选所有保存的数据信息3、遇到的bug&#xff1a;切换分页&#xff0c;其他页面勾选的数据丢失&#xff1b;点击确认只保存当前页的数据&#xff1…