LeetCode 2333. 最小差值平方和(贪心)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

给你两个下标从 0 开始的整数数组 nums1 和 nums2 ,长度为 n 。

数组 nums1 和 nums2 的 差值平方和 定义为所有满足 0 <= i < n 的 (nums1[i] - nums2[i])^2 之和。

同时给你两个正整数 k1 和 k2 。你可以将 nums1 中的任意元素 +1 或者 -1 至多 k1 次。
类似的,你可以将 nums2 中的任意元素 +1 或者 -1 至多 k2 次。

请你返回修改数组 nums1 至多 k1 次且修改数组 nums2 至多 k2 次后的最小 差值平方和

注意:你可以将数组中的元素变成 负 整数。

示例 1:
输入:nums1 = [1,2,3,4], nums2 = [2,10,20,19], k1 = 0, k2 = 0
输出:579
解释:nums1 和 nums2 中的元素不能修改,因为 k1 = 0 和 k2 = 0 。
差值平方和为:(1 - 2)^2 + (2 - 10)^2 + (3 - 20)^2 + (4 - 19)^2 = 579 。示例 2:
输入:nums1 = [1,4,10,12], nums2 = [5,8,6,9], k1 = 1, k2 = 1
输出:43
解释:一种得到最小差值平方和的方式为:
- 将 nums1[0] 增加一次。
- 将 nums2[2] 增加一次。
最小差值平方和为:
(2 - 5)^2 + (4 - 8)^2 + (10 - 7)^2 + (12 - 9)^2 = 43 。
注意,也有其他方式可以得到最小差值平方和,但没有得到比 43 更小答案的方案。提示:
n == nums1.length == nums2.length
1 <= n <= 10^5
0 <= nums1[i], nums2[i] <= 10^5
0 <= k1, k2 <= 10^9

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/minimum-sum-of-squared-difference
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 答案只与 对应元素的 非零 绝对值 有关系
  • 对这些绝对值进行排序,大的优先减少
class Solution:def minSumSquareDiff(self, nums1: List[int], nums2: List[int], k1: int, k2: int) -> int:diff = list(filter(lambda x : x!=0, [abs(x-y) for x, y in zip(nums1, nums2)]))# 非零 绝对值diff.sort(reverse=True) # 逆序排列if len(diff) == 0:return 0k = k1+k2  # 总的调整次数diff.append(0)  # 代码编写简单需要prevnum = diff[0]ct = 1 # 前面相同元素的个数i = 0while i < len(diff)-1:delta = diff[i]-diff[i+1] # 跟后一个的差值if delta == 0:ct += 1  # 相同值的元素个数 + 1else: # 遇到有下降台阶了if k >= delta*ct: # k 的次数,够ct个数降到下个元素的值prevnum = diff[i+1]k -= delta*ctct += 1else:  # 不够, 结束了delta = k//ct  # 把剩余的 k 次 均匀分给 ct 个数prevnum -= delta # 每个数还能降低 deltaleft = k - delta*ct # 剩余的次数,每个数的值还能 -1return int(math.pow((prevnum-1), 2)*left + math.pow(prevnum, 2)*(ct-left) + sum([x*x for x in diff[ct:]]))i += 1return 0

188 ms 31.4 MB Python3

1648 题是一样的思路,可以试试
https://leetcode.cn/problems/sell-diminishing-valued-colored-balls/


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

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

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

相关文章

[na][tools]快速ping网段工具-QuickPing

一款神器 quickping 能够很快的探测出该网断分出去哪些地址. 在线的会显示绿色 在线的有主机名的显示为亮绿色 转载于:https://www.cnblogs.com/iiiiher/p/5362403.html

六、Webpack详解学习笔记——webpack的安装、起步、配置、loader的使用、webpack中配置Vue、plugin的使用、搭建本地服务器、webpack配置的分离

一、认识webpack 什么是webpack&#xff1f; 这个webpack还真不是一两句话可以说清楚的。我们先看看官方的解释&#xff1a; At its core, webpack is a static module bundler for modern JavaScript applications.从本质上来讲&#xff0c;webpack是一个现代的JavaScript应用…

LeetCode 2349. 设计数字容器系统(SortedSet)

文章目录1. 题目2. 解题1. 题目 设计一个数字容器系统&#xff0c;可以实现以下功能&#xff1a; 在系统中给定下标处 插入 或者 替换 一个数字。 返回 系统中 给定数字 的最小下标。 请你实现一个 NumberContainers 类&#xff1a; NumberContainers() 初始化数字容器系统…

七、Vue cli详解学习笔记——什么是Vue cli ,Vue cli的使用(安装,拉取2.x模板,初始化项目),Vue cli2详解,Runtime-Compiler和Runtime-only区别

一、什么是Vue CLI 如果你只是简单写几个Vue的Demo程序, 那么你不需要Vue CLI. 如果你在开发大型项目, 那么你需要, 并且必然需要使用Vue CLI 使用Vue.js开发大型应用时&#xff0c;我们需要考虑代码目录结构、项目结构和部署、热加载、代码单元测试等事情。如果每个项目都要手…

我们

我们的 转载于:https://www.cnblogs.com/xxzhou/p/5364606.html

LeetCode 2343. 裁剪数字后查询第 K 小的数字

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的字符串数组 nums &#xff0c;其中每个字符串 长度相等 且只包含数字。 再给你一个下标从 0 开始的二维整数数组 queries &#xff0c;其中 queries[i] [ki, trimi] 。对于每个 queries[i] &#xff0c;你需要&#x…

八、Vue cli3详解学习笔记

一、认识Vue CLI3 1.1 vue-cli 3 与 2 版本有很大区别&#xff1a; vue-cli 3 是基于 webpack 4 打造&#xff0c;vue-cli 2 还是 webapck 3vue-cli 3 的设计原则是“0配置”&#xff0c;移除的配置文件根目录下的&#xff0c;build和config等目录vue-cli 3 提供了 vue ui 命…

LeetCode 1947. 最大兼容性评分和(状态枚举DP)

文章目录1. 题目2. 解题1. 题目 有一份由 n 个问题组成的调查问卷&#xff0c;每个问题的答案要么是 0&#xff08;no&#xff0c;否&#xff09;&#xff0c;要么是 1&#xff08;yes&#xff0c;是&#xff09;。 这份调查问卷被分发给 m 名学生和 m 名导师&#xff0c;学生…

pydev debugger: warning: trying to add breakpoint to file that does not exist: /tmp/xxx

pycharm 在本地&#xff0c;连接远程进行 debug&#xff0c;发现报错 pydev debugger: warning: trying to add breakpoint to file that does not exist: /tmp/EPeOxSnjcK/参考过 https://blog.csdn.net/AAliuxiaolei/article/details/122792931 但是不行。 也试过清除缓存 I…

十、vue-router学习笔记——认识路由、vue-router基本使用、vue-router嵌套路由、vue-router参数传递、vue-router导航守卫、keep-alive

一、认识路由 1.1 什么是路由&#xff1f; 说起路由你想起了什么&#xff1f; 路由是一个网络工程里面的术语。 路由&#xff08;routing&#xff09;就是通过互联的网络把信息从源地址传输到目的地址的活动. — 维基百科 额, 啥玩意? 没听懂 在生活中, 我们有没有听说过路由…

python 基准测试(cProfile \ kcachegrind \ line_profiler \ memory_profiler)

learn from 《Python高性能&#xff08;第2版&#xff09;》 类似工具&#xff1a;pycharm profile对函数调用效率进行测试 1. 例子 一个圆周运动的动画 from matplotlib import pyplot as plt from matplotlib import animation from random import uniform import timeit…

纯粹的python优化(数据结构、cache、推导、生成器)

learn from 《Python高性能&#xff08;第2版&#xff09;》 1. 数据结构与算法 列表、双端队列 list 底层是数组&#xff0c;在 开头 插入和删除的时间复杂度 O(n)&#xff0c; 在结尾插入和删除是 O(1)&#xff0c;访问任意元素是 O(1)deque 底层是 双向链表实现&#xff…

解决在vue init webpack my-project卡住的问题(已解决)

执行vue init webpack test命令&#xff1a; 然后cd test&#xff0c;然后cnpm install 或者 npm install --registryhttps://registry.npm.taobao.org 然后执行 npm run dev命令&#xff1a;

十一、案例:TabBar的封装

0、案例效果演示&#xff1a; 一、TabBar实现思路 如果在下方有一个单独的TabBar组件&#xff0c;你如何封装 自定义TabBar组件&#xff0c;在APP中使用 让TabBar出于底部&#xff0c;并且设置相关的样式 TabBar中显示的内容由外界决定 定义插槽 flex布局平分TabBar 自定义Ta…

POJ 3126 Prime Path

水题&#xff1a;直接判断素数bfs 1 #include <iostream>2 #include <cstdio>3 #include <cstring>4 #include <sstream>5 #include <algorithm>6 #include <list>7 #include <map>8 #include <vector>9 #include <queue&g…

十二、Promise的学习笔记(Promise的基本使用、链式编程、all())

一、认识Promise ES6中一个非常重要和好用的特性就是Promise 但是初次接触Promise会一脸懵逼&#xff0c;这TM是什么东西&#xff1f;看看官方或者一些文章对它的介绍和用法&#xff0c;也是一头雾水。 Promise到底是做什么的呢&#xff1f; Promise是异步编程的一种解决方…

十三、Vuex学习笔记

一、Vuex是做什么的? 官方解释&#xff1a;Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。 它采用 集中式存储管理 应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension&#xf…

SQL Server2008附加数据库失败

今天旁晚时分&#xff0c;我准备把老师在上课时候发给我们的一个数据库附加到我的SQL Server2008上面去&#xff0c;本来在学校机房用的SQL Server2000是很顺利地就成功了&#xff0c;但是把*.mdf文件附加到我的08上就不行了&#xff0c;出现了下面的问题&#xff08;图是我 百…

数据解析学习笔记(正则解析、bs4解析、xpath解析)

聚焦爬虫:爬取页面中指定的页面内容。 - 编码流程&#xff1a; - 指定url - 发起请求 - 获取响应数据 - 数据解析 - 持久化存储 数据解析分类&#xff1a; 正则bs4xpath&#xff08;***&#xff09; 数据解析原理概述&#xff1a; - 解析的局部的文本内容都会在标签之间或者标…

Rasa NLU 实践

文章目录1. 目录结构2. nlu.yml3. config.yml4. domain.yml5. 实践learn from https://github.com/Chinese-NLP-book/rasa_chinese_book_code 1. 目录结构 2. nlu.yml version: "3.0" nlu:- intent: greetexamples: |- 你好- hello- hi- 喂- 在么- intent: goodbye…