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

建筑企业网站源码寻找邯郸网站建设

建筑企业网站源码,寻找邯郸网站建设,教做公众号的网站,经过学习网站开发后的心得体会题目描述 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你可以对数组执行 至多 k 次操作#xff1a; 从数组中选择一个下标 i #xff0c;将 nums[i] 增加 或者 减少 1 。最终数组的频率分数定义为数组中众数的 频率 。请你返回你可以得到的 最大 频率分数。 众数…题目描述 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你可以对数组执行 至多 k 次操作 从数组中选择一个下标 i 将 nums[i] 增加 或者 减少 1 。最终数组的频率分数定义为数组中众数的 频率 。请你返回你可以得到的 最大 频率分数。 众数指的是数组中出现次数最多的数。一个元素的频率指的是数组中这个元素的出现次数。 示例 1 输入nums [1,2,6,4], k 3 输出3 解释我们可以对数组执行以下操作 - 选择 i 0 将 nums[0] 增加 1 。得到数组 [2,2,6,4] 。 - 选择 i 3 将 nums[3] 减少 1 得到数组 [2,2,6,3] 。 - 选择 i 3 将 nums[3] 减少 1 得到数组 [2,2,6,2] 。 元素 2 是最终数组中的众数出现了 3 次所以频率分数为 3 。 3 是所有可行方案里的最大频率分数。示例 2 输入nums [1,4,4,2,4], k 0 输出3 解释我们无法执行任何操作所以得到的频率分数是原数组中众数的频率 3 。提示 1 nums.length 1051 nums[i] 1090 k 1014 解题思路 先看一下滑动窗口的代码 class Solution:def maxFrequencyScore(self, nums: List[int], k: int) - int:nums.sort() # 排序数组max_freq 1 # 至少有一个数的频率l 0 # 窗口的左边界total 0 # 窗口内所有数变为窗口内最大数所需的总操作次数# r为窗口的右边界for r in range(len(nums)):# 将nums[r]加入窗口total nums[r]# 如果窗口内所有数变为nums[r]所需的操作次数超过k# 则移动左边界直到操作次数不超过kwhile nums[r] * (r - l 1) total k:total - nums[l]l 1# 更新最大频率max_freq max(max_freq, r - l 1) 每次以nums[right]作为变化的基准数不是最优策略可以优化为二分查找中位数 假定所有的 nums[i]均位于数轴上的 nums[i]的位置题目要求我们在数轴上找出一个点 t使得所有 nums[i]到 t 的距离之和最小。首先容易证明 t 不可能位于最小的nums[i]的左侧也不可能位于最大的 nums[i]的右侧否则我们「至少」能够将目标点调整为 最小的 nums[i]或 最大的 nums[i] 来得到更小的距离总和。 t 取中位数时距离之和最小。可以通过「反证法」证明略 total用累加的方式不是最优的方案数据量大时会超时可以优化为前缀和 class Solution:def maxFrequencyScore(self, nums: List[int], k: int) - int:nums.sort()left 0res 0n len(nums)# 计算前缀和prefix_sum [0]for num in nums:prefix_sum.append(prefix_sum[-1] num)def calculateCost(mid, left, right):cost_left nums[mid] * (mid - left) - (prefix_sum[mid] - prefix_sum[left])cost_right (prefix_sum[right 1] - prefix_sum[mid 1]) - nums[mid] * (right - mid)return cost_left cost_rightfor right in range(n):mid (left right) // 2# 当前窗口内将所有元素变为 nums[mid] 需要的操作次数while calculateCost(mid, left, right) k:# 如果操作次数超过 k则移动窗口左边界left 1mid (left right) // 2# 更新最大频率res max(res, right - left 1)return res 中位数贪心 右边数字为难度分 先刷462再刷2448 462. 最小操作次数使数组元素相等 II2033. 获取单值网格的最小操作数 16722448. 使数组相等的最小开销 2005 class Solution:def minCost(self, nums: List[int], cost: List[int]) - int:a sorted(zip(nums, cost))#cost可以理解为cost个nums[i]这样问题就转化为了中心数贪心问题s, mid 0, (sum(cost) 1) // 2for x, c in a:s cif s mid:return sum(abs(y - x) * c for y, c in a) # 把所有数变成 x 2607. 使子数组元素和相等 20711703. 得到连续 K 个 1 的最少相邻交换次数 2467
http://www.yutouwan.com/news/353977/

相关文章:

  • seo网站优化插件wordpress 引用js
  • 养殖企业网站wordpress div layer
  • 宝安区做外贸网站的公司松岗建网站
  • 扬中网站建设好么高端娱乐网站建设
  • 建设网站宣传情侣博客网站模板下载
  • 杭州定制网站公司三亚专业网站建设
  • 超市的网站怎么建设wordpress副标题调用函数
  • 上海网站制作优化公司seo自然搜索优化排名
  • 电子商务网站建设财务预算网站建设猫腻
  • 网站建设优化推广安徽电子商务网站html模板
  • 重庆触摸屏 电子商务网站建设哈尔版网站建设
  • 云盘网站如何做呢喃wordpress 模板
  • ps怎么做网站模板建设银行官方网站个人
  • 白酒 网站模板淘宝客的网站是如何建设的
  • 网站开发技术及特点网站风格代码
  • 商城网站有什么好处微信开发者平台怎么登
  • 百度建立自己的网站滨海天津网站建设
  • 网站建设这个职业是什么意思什么网站做任务能挣
  • seo推广优化外包价格长沙网站优化方法
  • 广州市酒店网站设计河北邯郸永利ktv视频
  • 辽宁省企业信息系统厦门搜索引擎优化
  • o2o网站源码app在手机上编写安卓app
  • 做预算兼职的网站烟台城乡建设学校96级给排水网站
  • 手机免费自建网站企业营销型网站建设公司
  • 呼和浩特市城乡建设网站毛站
  • 网站开发设计报告wordpress移动自媒体
  • 瑞安联科网站建设ps软件哪个版本最好用
  • 什么行业最需要做网站建设wordpress最新淘宝客程序
  • 衡阳市做淘宝网站建设网络免费推广网站
  • 建设工程教育网官网下载手机网站优化指南