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

泰安中呼网站建设有限公司 概况个人网站的设计与实现参考文献

泰安中呼网站建设有限公司 概况,个人网站的设计与实现参考文献,优化排名推广教程网站,药品推荐网站模板数组元素之和最小化 问题描述思路分析分析思路解决方案 参考代码#xff08;Python#xff09;代码分析1. solution 函数2. 计算 1 2 3 ... n 的和3. 乘以 k 得到最终的数组元素之和4. 主程序#xff08;if __name__ __main__:#xff09;代码的时间复杂度分析#x… 数组元素之和最小化 问题描述思路分析分析思路解决方案 参考代码Python代码分析1. solution 函数2. 计算 1 2 3 ... n 的和3. 乘以 k 得到最终的数组元素之和4. 主程序if __name__ __main__:代码的时间复杂度分析代码的空间复杂度分析 问题描述 思路分析 分析 元素两两不同数组中所有元素必须是不同的。元素的最大公约数为 k所有的元素必须是 k 的倍数。元素之和尽可能小为了让元素的和最小我们需要尽量选择最小的满足条件的元素。 思路 首先如果数组元素的最大公约数为 k那么所有元素可以表示成 k * a1, k * a2, ..., k * an 的形式其中 a1, a2, ..., an 是 n 个互质的数。为了满足“元素之和尽可能小”我们应该选择最小的 n 个互质数且这些数的公约数为 1。最小的 n 个互质数依次是1, 2, 3, …, n。 解决方案 选择最小的 n 个互质数分别是 1, 2, 3, ..., n。这些数分别乘以 k得到的数组为 k, 2k, 3k, ..., nk。最终的数组元素之和就是 k * (1 2 3 ... n)。 1 2 3 ... n 的和是一个已知公式n * (n 1) / 2。 因此数组的最小和就是 k * (n * (n 1) / 2)。 参考代码Python def solution(n: int, k: int) - int:# 计算 1 2 3 ... n 的和sum_of_first_n n * (n 1) // 2# 乘以 k 得到最终的和return k * sum_of_first_nif __name__ __main__:print(solution(n 3, k 1) 6) # 123 6print(solution(n 2, k 2) 6) # 24 6print(solution(n 4, k 3) 30) # 36912 30代码分析 1. solution 函数 def solution(n: int, k: int) - int:功能该函数的作用是返回一个包含 n 个元素的数组其满足题目的条件数组中的元素两两不同所有元素的最大公约数为 k并且这些元素之和尽可能小。参数 n: 数组中元素的个数。k: 数组中每个元素的最大公约数。 2. 计算 1 2 3 ... n 的和 sum_of_first_n n * (n 1) // 2解释为了尽可能使数组元素之和最小我们选择最小的 n 个互质数这些数是 1, 2, 3, ..., n。 数学公式1 2 3 ... n 的和是一个经典的数学公式 该公式计算的是从 1 到 n 的所有整数的和。这个公式的时间复杂度是 O(1)只需要常数时间即可计算出结果。 具体实现使用整数除法 // 来确保计算结果为整数在 Python 中/ 默认会返回浮动类型而我们这里需要整数结果。 3. 乘以 k 得到最终的数组元素之和 return k * sum_of_first_n解释计算完 1 2 3 ... n 的和后乘以 k 得到数组中所有元素的和。 例如数组中的元素是 k, 2k, 3k, ..., nk这些元素的和就是 k * (1 2 3 ... n)即 k 乘以 sum_of_first_n。由于我们已经在前一步计算了 sum_of_first_n这一步是将它乘以 k 得到最终的结果。 4. 主程序if __name__ __main__: if __name__ __main__:print(solution(n 3, k 1) 6) # 123 6print(solution(n 2, k 2) 6) # 24 6print(solution(n 4, k 3) 30) # 36912 30这里的 if __name__ __main__: 用来检查该文件是否作为主程序执行。如果是代码就会运行里面的测试代码如果这个文件被作为模块导入里面的测试代码就不会执行。测试 solution(n 3, k 1) 返回的是 6因为选取的是 1, 2, 3它们的和是 6。solution(n 2, k 2) 返回的是 6选取的是 2, 4它们的和是 6。solution(n 4, k 3) 返回的是 30选取的是 3, 6, 9, 12它们的和是 30。 代码的时间复杂度分析 计算和 1 2 3 ... n这部分使用了数学公式时间复杂度是 O(1)。乘以 k这只是一个常数乘法操作时间复杂度也是 O(1)。总时间复杂度由于这两个操作的时间复杂度都是 O(1)所以整体时间复杂度是 O(1)。 代码的空间复杂度分析 该函数只使用了常数空间除了输入和输出所以空间复杂度也是 O(1)。
http://www.w-s-a.com/news/936315/

相关文章:

  • 圣诞节网站怎么做怎么获取网站的图片
  • 想找个人做网站音乐网站建设教程视频教程
  • 网站收录一键提交阿里巴巴做网站多少钱
  • 怎么做网站投放广告商务网站建设实训报告
  • 服装代销的网站源码国内电子商务网站有哪些
  • qq空间怎么做网站做企业平台的网站有哪些
  • 网站的优缺点wordpress手机适配模板中文
  • 福州网站建设H5广告公司简介简短
  • 网站404页面的作用app开发郑州
  • 亚马逊中国网站建设目标网站建设的策划
  • 林州网站建设服务徐州网站建设
  • 如何检测网站死链景德镇网站建设哪家好
  • 旅游网站开发目标天津专业做网站公司
  • 名者观看网站快手小程序
  • 网络架构扁平化windows优化大师好不好
  • 安康养老院收费价格表兰州seo整站优化服务商
  • 网站开发技术方案模板无锡网站建设推荐
  • 自助建站系统注册三维家3d设计软件免费
  • 做seo网站标题重要吗郑州众诚建设监理有限公司网站
  • 建设网站南沙区百度关键词推广怎么做
  • 网站建设公司做销售前景好不好石家庄外贸网站制作
  • windows2008做网站网站首页打开速度
  • 做外贸要做什么网站服装设计图
  • 中山市路桥建设有限公司网站网站开发角色分配权限
  • 加强档案网站建设网站搭建好了不用会不会被攻击
  • 维护网站信息网络建设服务
  • 网站建设策划书模板下载用自己电脑配置服务器做网站
  • 360免费建站空间淘宝数据网站开发
  • 做分销的网站本地dede网站怎么上线
  • 中学网站模板北京管理咨询公司