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

专门做app的网站爱站工具网

专门做app的网站,爱站工具网,行业门户网站制作,网站建设策划结构博客主页:誓则盟约系列专栏:IT竞赛 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 题目一: 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 <= 50
  • 1 <= nums[i] <= nums.length
  • 1 <= 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:nums=nums[::-1]la=[x for x in range(1,k+1)]re,k=0,0while la:if nums[re] in la:la.pop(la.index(nums[re]))k+=1re+=1return 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 <= 50
  • n 为偶数。
  • 1 <= nums[i] <= 50

 


 

 分析问题:

    这道题也不难,步骤大致分为以下四步:

  1. 初始化:

    • 初始化结果变量 re 为 0,用于遍历列表。
    • 初始化最小平均值变量 a_min 为一个较大值(100),用于后续比较更新。
    • 计算列表长度并保存到变量 n 。
  2. 排序列表:对输入的 nums 列表进行排序,这样在后续计算平均值时,可以方便地从两端选取元素。

  3. 循环计算与比较:

    • 通过一个循环,每次从已排序的列表两端选取元素,计算它们的平均值 key 。
    • 将计算得到的平均值 key 与当前的最小平均值 a_min 进行比较,如果 key 更小,则更新 a_min 。
    • 然后移动起始和结束索引,继续下一轮的计算和比较。
  4. 返回结果:循环结束后,返回最终得到的最小平均值 a_min 。

        其核心思想是通过遍历列表两端元素的组合,计算平均值并找到其中的最小值。

 代码实现:

class Solution:def minimumAverage(self, nums: List[int]) -> float:re,a_min,n=0,100,len(nums)-1nums.sort()while re<=n:key=(nums[re]+nums[n])/2a_min=min(a_min,key)re+=1n-=1return a_min


 

总结:

考点

  1. 列表的操作,包括反转列表、元素的访问和修改。
  2. 集合或列表的包含关系判断和元素删除操作。
  3. 循环结构的使用,通过条件判断控制循环的执行。

收获

  1. 学会如何通过切片操作 [::-1] 快速反转列表。
  2. 掌握一种通过循环和条件判断来处理列表中元素匹配和删除的方法。
  3. 理解如何在循环中动态地根据条件更新相关变量,以达到求解问题的目的。
  4. 提高对逻辑判断和控制流程的理解和运用能力。

“点亮星火,眺望未来。”——《星火集》 

http://www.hyszgw.com/news/8060.html

相关文章:

  • 织梦软件展示网站源码网站维护中
  • 电子商务网站制作电话营销技巧和营销方法
  • 房产类网站开发需要优化的地方
  • 江阴网站推广手机百度账号登录个人中心
  • 武汉快速建站公司seo诊断分析工具
  • wordpress前台403seo博客优化
  • 长沙网站建设服务公司上海做网络口碑优化的公司
  • 医疗器械网站备案前置审批事例app拉新项目
  • 可以做cps合作的棋牌网站浏览器下载安装2023版本
  • 纯前端网站怎么做rest青岛网络优化费用
  • 网站建设自学多长时间郑州网络seo公司
  • 进入公众号平台重庆网站快速排名优化
  • php免费企业网站模板曲靖新闻今日头条
  • 阜康网站建设安徽搜索引擎优化seo
  • 做网站数据库有哪些如何推广app让别人注册
  • 执行信息公开网上海seo公司排名榜
  • 成立一个做网站的公司全网推广成功再收费
  • 小白如何搭建个人网站搜狗搜索网页版
  • asp企业网站开发技术上海疫情最新数据
  • wordpress使用视频教程seo整站优化哪家好
  • 网站的客服一般怎么做全国疫情最新公布
  • 内涵图网站源码旺道营销软件
  • 免费做情网站seo外包 杭州
  • 义乌做网站推广页面制作
  • 如何做网站源码备份进入百度网首页
  • 用自己的身份做网站备案nba最新消息交易情况
  • 无需注册免费创建网站杭州网站seo推广软件
  • 博客页面html模板标题关键词优化技巧
  • 客服外包项目潍坊seo教程
  • 扁平化购物网站模板百度top排行榜