网站建设论文html格式建设工程施工合同示范文本的性质
web/
2025/10/9 3:39:25/
文章来源:
网站建设论文html格式,建设工程施工合同示范文本的性质,品牌建设 企业发言,wordpress首页加外链#左耳听风 ARST 打卡活动重启#
目录 一、问题
二、解题方法
三、解题方法二 四、两个方法的区别 关于 ARTS 的释义 —— 每周完成一个 ARTS#xff1a; ● Algorithm: 每周至少做一个 LeetCode 的算法题 ● Review: 阅读并点评至少一篇英文技术文章 ● Tips: 学习至少一个技…#左耳听风 ARST 打卡活动重启#
目录 一、问题
二、解题方法
三、解题方法二 四、两个方法的区别 关于 ARTS 的释义 —— 每周完成一个 ARTS ● Algorithm: 每周至少做一个 LeetCode 的算法题 ● Review: 阅读并点评至少一篇英文技术文章 ● Tips: 学习至少一个技术技巧 ● Share: 分享一篇有观点和思考的技术文章
希望通过此次活动能聚集一波热爱技术的人延续好奇、探索、实践、分享的精神。 一、问题 给你一个长度为 n 的整数数组每次操作将会使 n - 1 个元素增加 1 。返回让数组所有元素相等的最小操作次数。 示例 1 输入nums [1,2,3] 输出3 解释 只需要3次操作注意每次操作会增加两个元素的值 [1,2,3] [2,3,3] [3,4,3] [4,4,4] 示例 2 输入nums [1,1,1] 输出0 二、解题方法
def minMoves(nums):total sum(nums)avg total // len(nums)return sum(abs(x - avg) for x in nums)这段代码实现了一个函数 minMoves,用于计算将一个整数数组中的所有元素变为相等值所需的最小操作次数。 函数的输入参数为一个整数数组 nums。 首先我们使用 Python 内置函数 sum() 对数组中所有元素求和得到总和 total。然后我们将总和除以数组长度 len(nums),得到平均值 avg。 接下来我们使用列表推导式遍历数组中的每个元素 x,并计算它与平均值 avg 的差值的绝对值。最后我们将所有差值的绝对值求和即为将数组中所有元素变为相等值所需的最小操作次数。 这个算法的时间复杂度为 O(n),其中 n 为数组的长度。 三、解题方法二 除了使用列表推导式计算差值的绝对值我们还可以使用数学方法来解决这个问题。 假设数组中所有元素都比平均值大 k 个单位那么将它们全部减去 k 个单位即可让它们变成相等的值。因此我们需要找到最小的操作次数使得这些操作可以将所有元素都变为相等的值。 我们可以先计算出数组中所有元素与平均值的差值之和 sum_diff,然后再用这个和除以 k,得到需要进行的操作次数 num_operations。最后我们将 num_operations 乘以数组长度 len(nums),即为将数组中所有元素变为相等值所需的最小操作次数。 以下是使用这种方法实现的代码 def minMoves(nums):avg sum(nums) // len(nums)sum_diff sum(abs(x - avg) for x in nums)num_operations sum_diff // (len(nums) - 1)return num_operations * len(nums)这个算法的时间复杂度同样为 O(n),其中 n 为数组的长度。 四、两个方法的区别 这两个方法的区别在于它们的思路不同。第一个方法是先计算出数组中所有元素与平均值的差值之和 sum_diff,然后再用这个和除以 k,得到需要进行的操作次数 num_operations。最后我们将 num_operations 乘以数组长度 len(nums),即为将数组中所有元素变为相等值所需的最小操作次数。 而第二个方法则是假设数组中所有元素都比平均值大 k 个单位那么将它们全部减去 k 个单位即可让它们变成相等的值。因此我们需要找到最小的操作次数使得这些操作可以将所有元素都变为相等的值。 两种方法的时间复杂度都是 O(n),其中 n 为数组的长度。但是由于第二种方法假设了数组中所有元素都比平均值大 k 个单位因此在实际情况中可能会出现误差。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/89423.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!