做搜狗网站优化排,嘉祥建设局网站,下载网站备案的核验单,wordpress查询标签博客主页#xff1a;誓则盟约系列专栏#xff1a;IT竞赛 专栏关注博主#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出#xff0c;及时修改感谢大家点赞#x1f44d;收藏⭐评论✍ 题目一#xff1a;
2869.收集元素的最少操作次数【简单】
题目#xff…博客主页誓则盟约系列专栏IT竞赛 专栏关注博主后期持续更新系列文章如果有错误感谢请大家批评指出及时修改感谢大家点赞收藏⭐评论✍ 题目一
2869.收集元素的最少操作次数【简单】
题目
给你一个正整数数组 nums 和一个整数 k 。
一次操作中你可以将数组的最后一个元素删除将该元素添加到一个集合中。
请你返回收集元素 1, 2, ..., k 需要的 最少操作次数 。 示例 1
输入nums [3,1,5,4,2], k 2
输出4
解释4 次操作后集合中的元素依次添加了 2 4 5 和 1 。此时集合中包含元素 1 和 2 所以答案为 4 。示例 2
输入nums [3,1,5,4,2], k 5
输出5
解释5 次操作后集合中的元素依次添加了 2 4 5 1 和 3 。此时集合中包含元素 1 到 5 所以答案为 5 。示例 3
输入nums [3,2,5,3,1], k 3
输出4
解释4 次操作后集合中的元素依次添加了 1 3 5 和 2 。此时集合中包含元素 1 到 3 所以答案为 4 。提示
1 nums.length 501 nums[i] nums.length1 k nums.length输入保证你可以收集到元素 1, 2, ..., k 。 分析问题 这个题的数据量并不是很大所以我们可以使用pop函数以及index函数求解并不会造成超时。分析问题问题要求我们从后往前遍历寻找最少操作次数如果不熟练从后往前的话我们可以在最开始就把nums数组给翻过来这样我们从前找。 定义一个列表ls,里面放1~k这几个正整数然后从前开始遍历这里我们不知道会遍历多少次所以使用while循环当ls为空的时候退出循环。定义一个指针re代表nums数组的下标k代表操作次数。遍历过程中遇到存在ls里面的元素则ls.pop该元素re,k都加等于1。最后返回结果k即可。 代码实现
class Solution:def minOperations(self, nums: List[int], k: int) - int:numsnums[::-1]la[x for x in range(1,k1)]re,k0,0while la:if nums[re] in la:la.pop(la.index(nums[re]))k1re1return k题目二
3194.最小元素和最大元素的最小平均值【简单】
题目
你有一个初始为空的浮点数数组 averages。另给你一个包含 n 个整数的数组 nums其中 n 为偶数。
你需要重复以下步骤 n / 2 次
从 nums 中移除 最小 的元素 minElement 和 最大 的元素 maxElement。将 (minElement maxElement) / 2 加入到 averages 中。
返回 averages 中的 最小 元素。 示例 1
输入 nums [7,8,3,4,15,13,4,1]
输出 5.5
解释 示例 2
输入 nums [1,9,8,3,10,5]
输出 5.5
解释 示例 3
输入 nums [1,2,3,7,8,9]
输出 5.0
解释 提示
2 n nums.length 50n 为偶数。1 nums[i] 50 分析问题 这道题也不难步骤大致分为以下四步 初始化 初始化结果变量 re 为 0用于遍历列表。初始化最小平均值变量 a_min 为一个较大值100用于后续比较更新。计算列表长度并保存到变量 n 。 排序列表对输入的 nums 列表进行排序这样在后续计算平均值时可以方便地从两端选取元素。 循环计算与比较 通过一个循环每次从已排序的列表两端选取元素计算它们的平均值 key 。将计算得到的平均值 key 与当前的最小平均值 a_min 进行比较如果 key 更小则更新 a_min 。然后移动起始和结束索引继续下一轮的计算和比较。 返回结果循环结束后返回最终得到的最小平均值 a_min 。 其核心思想是通过遍历列表两端元素的组合计算平均值并找到其中的最小值。 代码实现
class Solution:def minimumAverage(self, nums: List[int]) - float:re,a_min,n0,100,len(nums)-1nums.sort()while ren:key(nums[re]nums[n])/2a_minmin(a_min,key)re1n-1return a_min 总结
考点 列表的操作包括反转列表、元素的访问和修改。集合或列表的包含关系判断和元素删除操作。循环结构的使用通过条件判断控制循环的执行。 收获 学会如何通过切片操作 [::-1] 快速反转列表。掌握一种通过循环和条件判断来处理列表中元素匹配和删除的方法。理解如何在循环中动态地根据条件更新相关变量以达到求解问题的目的。提高对逻辑判断和控制流程的理解和运用能力。 “点亮星火眺望未来。”——《星火集》