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

西安高端网站建设公司网络技术培训

西安高端网站建设公司,网络技术培训,深圳门窗在哪里网站做推广,网站建设工资多少Leetcode 3139. Minimum Cost to Equalize Array 1. 解题思路2. 代码实现 题目链接:3139. Minimum Cost to Equalize Array 1. 解题思路 这一题是一道hard的题目,而且看了一下答出率低的离谱,就一开始被吓到了,不过实际做了一下…
  • Leetcode 3139. Minimum Cost to Equalize Array
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3139. Minimum Cost to Equalize Array

1. 解题思路

这一题是一道hard的题目,而且看了一下答出率低的离谱,就一开始被吓到了,不过实际做了一下之后,发现用很蠢的方法也一下子过了,就很懵逼……

首先,显然如果cost1的两倍不大于cost2,那么我们显然全部使用操作一加到最大值即可。

然后,我们就是暴力地考察如果最终所有值都变化为 n n n的情况即可,且显然有 n ≥ m a x ( a r r ) n \geq max(arr) nmax(arr)

而关于如何求将数组变为一个具体的n时的情况,此时我们只需要算出所有差值然后进行排序,如果最大值不多于总和的一半,那么我们总可以使用操作二来完成几乎所有的操作,至多只需要执行一次操作一;如果最大值多于综合的一半,那么我们就只能使用操作一来填平其中不够的部分了。

2. 代码实现

给出python代码实现如下:

MOD = 10**9+7class Solution:def minCostToEqualizeArray(self, nums: List[int], cost1: int, cost2: int) -> int:if 2 * cost1 <= cost2:return (max(nums) * len(nums) - sum(nums)) * cost1 % MODnums = sorted(nums)_max = max(nums)def cal_cost(tgt):delta = [tgt-x for x in nums]tot = sum(delta)if delta[0] <= (tot+1) // 2:return tot // 2 * cost2 + tot % 2 * cost1else:return (delta[0] - tot + delta[0]) * cost1 + (tot - delta[0]) * cost2ans = cal_cost(_max)while True:_max += 1_ans = cal_cost(_max)if _ans >= ans:breakans = _ansreturn ans % MOD

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

http://www.hkea.cn/news/797924/

相关文章:

  • 东莞建设网站流程澎湃新闻
  • 萧县住房和城乡建设局网站seo排名推广工具
  • 企业网站php模板下载百度百科官网首页
  • 做愛視頻网站在线网页制作网站
  • 织梦pc怎么做手机网站搜索引擎优化的基础是什么
  • 课程建设网站设计源码爱站网反链查询
  • 安徽省建设业协会网站个人网页制作教程
  • 好的摄影网站推荐福州seo顾问
  • html做的好看的网站如何宣传推广产品
  • 微信手机网站制作怎么引流客源最好的方法
  • 宿州建设网站公司前端seo搜索引擎优化
  • 做王境泽表情的网站百度seo关键词优化排名
  • 怎么选择无锡网站建设虚拟主机搭建网站
  • 做原油期货关注什么网站搜索引擎优化是做什么
  • 微信小程序怎么制作游戏安卓优化清理大师
  • 胶南做网站初学者做电商怎么入手
  • 网站为什么要维护佛山网络营销推广
  • 国企网站建设报告怎么建造自己的网站
  • 免费做司考真题的网站余姚网站如何进行优化
  • 如何网站开发1688网站
  • 丽水专业网站建设价格青岛网站优化
  • 网站开发专业培训学校百度推广登录官网入口
  • 贵阳做网站公司网站热度查询
  • 做课件最好的素材网站考拉seo
  • 网站建设玖首选金手指seo网站优化收藏
  • 台州卓远做网站好不好广州seo教程
  • dz网站数据备份bt磁力猪
  • github 可以做网站吗360seo
  • 杭州 企业门户网站建设爱链
  • dj那个网站做的好长沙公司网络营销推广