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

铜仁搜狗推广企业seo推广的绝密诀窍曝光

铜仁搜狗推广,企业seo推广的绝密诀窍曝光,广州微信网站开发,电子商务网站建设大二实训解决"k-avoiding 数组的最小总和"问题 这道题有两种主要解法。 解法一:直接数学计算(最优解) 通过数学推导直接计算出结果,不需要构建实际的数组。 class Solution:def minimumSum(self, n: int, k: int) -> int…

在这里插入图片描述

解决"k-avoiding 数组的最小总和"问题

这道题有两种主要解法。

解法一:直接数学计算(最优解)

通过数学推导直接计算出结果,不需要构建实际的数组。

class Solution:def minimumSum(self, n: int, k: int) -> int:# 特殊情况:当k很大或k=1时,可以直接选择前n个正整数if k > 2*n or k <= 1:return n * (n + 1) // 2half_k = k // 2chosen_count = min(n, half_k)# 计算前half_k个数的和first_sum = chosen_count * (chosen_count + 1) // 2# 如果已经选择了n个数,直接返回结果if chosen_count == n:return first_sum# 否则,计算从k开始的剩余数字的和remaining_count = n - chosen_countstart = kend = k + remaining_count - 1remaining_sum = (start + end) * remaining_count // 2return first_sum + remaining_sum

思路解析:

  1. 需要找到n个不同的正整数,使得没有两个数的和等于k,且总和最小。
  2. 为了最小化总和,总是尝试包含尽可能小的正整数。
  3. 对于任何一个数x,不能同时包含x和k-x(否则它们的和就是k)。
  4. 当x < k/2时,x < k-x,所以为了最小化总和,应该选择x而不是k-x。
  5. 因此,可以安全地包含1到k/2的所有数。
  6. 对于k/2 < x < k的数,它们的互补数k-x已经在选择的集合中(因为k-x < k/2),所以必须跳过这些数。
  7. 对于x ≥ k的数,它们的互补数k-x ≤ 0,不在正整数集合中,所以可以安全包含。

时间复杂度:O(1),只需要进行简单的数学计算。
空间复杂度:O(1),只使用常数空间。

解法二:贪心方法 + 集合

通过维护一个集合,贪心地选择最小的可行数字:

class Solution:def minimumSum(self, n: int, k: int) -> int:s = set()num = 1while len(s) < n:if k - num not in s:s.add(num)num += 1return sum(s)

思路解析:

  1. 维护一个已选择数字的集合s。
  2. 从1开始,尝试将每个数字加入序列。
  3. 对于每个数字num,检查其互补数(k-num)是否已在集合中。如果不在,则可以加入num。
  4. 继续此过程直到集合中有n个数字。

时间复杂度:O(n),最多需要检查2n个数字。
空间复杂度:O(n),需要存储n个数字。

示例分析

以示例1为例,n=5, k=4:

  • 解法一中,half_k = 2,首先选择1和2。
  • 然后跳过3(因为4-3=1,而1已经在集合中)。
  • 然后从4开始选择剩余的数字:4,5,6。
  • 最终序列是[1,2,4,5,6],总和为18。

两种解法都能得到正确结果,但第一种解法更高效,时间复杂度为常数级。

http://www.dtcms.com/a/495609.html

相关文章:

  • 两部门明确:治理价格无序竞争,报价竞标不得低于成本
  • 进行材料水蒸气吸附稳定性测试的比表面及孔径分析仪推荐
  • 西安网站制作西安搜推宝网络seo专员的工作内容
  • 蓝潮网站建设成都市制作企业网站
  • 博客安全攻防演练:从实战视角构建全方位防护体系
  • 应⽤层⾃定义协议与序列化
  • MySQL 逗号分隔的字符串查询的集中方式
  • 第12章 STM32 ADC采集内部温度传感器和基准电压的配置和测试
  • 网站推广公司 wordpress.net做网站之前设置
  • 台州网站制作公司个人免费注册公司网站
  • 怎么网站建设到百度怎么样找回网站密码
  • 如何检测网站死链沧州做网站的
  • 河南特色农产品识别系统:让AI守护“中原味道”
  • Linux系统--信号--信号屏蔽(阻塞)核心函数
  • GaussDB 应用侧报Read timed out解决方法
  • 一种解决java fst序列化兼容性问题的方法
  • ROS系统中常用的数据传输方式——参数
  • 网站移动端是什么问题吗移动商城积分兑换
  • 淘宝API数据采集的日志监控与异常报警
  • 熊猫(安卓):识字软件
  • 水题记录2.3
  • Google Landmarks Dataset v2 (GLDv2):500万地标图像的识别与检索基准​(数据集概览、下载与使用全流程​)
  • 在设置feign请求的请求头透传(Header Propagation)时获取不到当前服务请求头的信息
  • 服装网站设计网站强制分享链接怎么做的
  • DevExpress WPF中文教程:Data Grid - 如何使用虚拟源?(二)
  • WPF中的变换(Transform)功能详解
  • 北京做网站主机开通成功网站建设中
  • 工业显示器在微铣削机床中的应用
  • 合肥手机网站建设陕西网站建设平台
  • 东莞网站推广及优化平台营销策略