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

功能类似淘宝的网站建设网站 vps

功能类似淘宝的网站建设,网站 vps,专业手机网站建设价格明细表,企业网站建设方案论文#左耳听风 ARST 打卡活动重启# 目录 一、问题 二、解题方法一 三、解题方法二 关于 ARTS 的释义 —— 每周完成一个 ARTS: ● Algorithm: 每周至少做一个 LeetCode 的算法题 ● Review: 阅读并点评至少一篇英文技术文章 ● Tips: 学习至少一个技术技巧 ● Share: …

#左耳听风 ARST 打卡活动重启#

目录

 一、问题

二、解题方法一

 三、解题方法二


关于 ARTS 的释义 —— 每周完成一个 ARTS:
● Algorithm: 每周至少做一个 LeetCode 的算法题
● Review: 阅读并点评至少一篇英文技术文章
● Tips: 学习至少一个技术技巧
● Share: 分享一篇有观点和思考的技术文章

希望通过此次活动能聚集一波热爱技术的人,延续好奇、探索、实践、分享的精神。
 


 一、问题

给定一个非空且只包含非负数的整数数组 nums,数组的 度 的定义是指数组里任一元素出现频数的最大值。

你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。

示例 1:

输入:nums = [1,2,2,3,1]
输出:2
解释:
输入数组的度是 2 ,因为元素 1 和 2 的出现频数最大,均为 2 。
连续子数组里面拥有相同度的有如下所示:
[1, 2, 2, 3, 1], [1, 2, 2, 3], [2, 2, 3, 1], [1, 2, 2], [2, 2, 3], [2, 2]
最短连续子数组 [2, 2] 的长度为 2 ,所以返回 2 。

示例 2: 

输入:nums = [1,2,2,3,1,4,2]
输出:6
解释:
数组的度是 3 ,因为元素 2 重复出现 3 次。
所以 [2,2,3,1,4,2] 是最短子数组,因此返回 6 。
 

提示:

nums.length 在 1 到 50,000 范围内。
nums[i] 是一个在 0 到 49,999 范围内的整数。

二、解题方法一

def findShortestSubArray(nums):# 统计每个数字出现的频数和第一次出现的位置count = {}first_occurrence = {}max_degree = 0for i, num in enumerate(nums):if num not in count:count[num] = 1first_occurrence[num] = ielse:count[num] += 1# 更新最大度if count[num] > max_degree:max_degree = count[num]# 找到与最大度相同的数字的最短连续子数组长度min_length = float('inf')for num in count:if count[num] == max_degree:length = i - first_occurrence[num] + 1if length < min_length:min_length = lengthreturn min_length

这段代码实现了一个函数 `findShortestSubArray`,用于找到给定数组中,出现次数最多的数字所对应的最短连续子数组的长度。

具体实现过程如下:

  1. 首先定义了三个字典变量:`count`、`first_occurrence` 和 `max_degree`,分别用于统计每个数字出现的频数、第一次出现的位置以及最大度(即出现次数最多的数字的出现次数)。

  2. 然后遍历输入的数组 `nums`,对于每个数字 `num`,如果它不在 `count` 中,则将其添加到 `count` 中并记录其第一次出现的位置;否则,将其出现次数加一。同时,如果当前数字的出现次数大于之前的最大度,则更新最大度。

  3. 接着遍历 `count` 中的每个数字,如果某个数字的出现次数等于最大度,则计算该数字所对应的最短连续子数组的长度。具体来说,首先计算该数字最后一次出现的位置与第一次出现的位置之差加一,即为该数字所对应的子数组的长度;然后将这个长度与之前计算得到的最短连续子数组长度进行比较,取较小值作为新的最短连续子数组长度。

  4. 最后返回计算得到的最短连续子数组长度。

需要注意的是,在计算最短连续子数组长度时,需要使用变量 `i` 来记录当前遍历到的位置,因此在循环开始前需要先初始化 `i` 为 0。

 三、解题方法二

def findShortestSubArray(nums):
# 使用哈希表记录每个数字出现的次数和位置
count = {}
for i, num in enumerate(nums):
if num not in count:
count[num] = [1, i]
else:
count[num][0] += 1# 按照出现次数从大到小排序
sorted_count = sorted(count.items(), key=lambda x: x[1][0], reverse=True)# 找到出现次数最多的数字所对应的最短连续子数组长度
max_degree = sorted_count[0][1][0]
min_length = float('inf')for num, (degree, _) in enumerate(sorted_count):if degree == max_degree:length = nums[_] + nums[_ + degree] + 1if length < min_length:min_length = lengthreturn min_length

 这个实现方式与之前的实现方式类似,但是使用了哈希表来记录每个数字出现的次数和位置,避免了在遍历数组时多次计算某个数字的出现次数。同时,将哈希表中的元素按照出现次数从大到小排序,可以减少后续查找的复杂度。最后,通过遍历排序后的哈希表,找到出现次数最多的数字所对应的最短连续子数组长度。

http://www.yayakq.cn/news/248957/

相关文章:

  • 网站源码是啥四会市住房和城乡建设局网站
  • 手机网站源码大全卖域名的网站要怎么做
  • 织梦cms怎么打不开网站帮别人做ppt挣钱的网站
  • 湖南省建设厅安许审核公布网站佛山网页制作教程
  • 做的网站如何发更新生产管理
  • 做服装外单的网站有哪些企业网络搭建拓扑图
  • 网站建设阶段要做什么深圳市做网站知名公司有哪些
  • 怎么看别人网站在哪里做的外链网站关键词优化排名推荐
  • 德宏北京网站建设网站上线步骤 icp备案
  • 深圳高端网站建设公司排名广州棠下网站建设
  • 开封网站建设培训班合肥做企业网站的网络公司
  • 珠海做网站公司有哪些免费包装设计在线生成
  • 有域名了如何做网站河南建设工程信息网推荐中项网
  • 优秀网站设计流程云梦县建设安全网站
  • 网站建设好后有些什么资料在国外可以用高德地图吗
  • 南昌网站seo哪家公司好做三角渐变用哪个网站
  • 网站开发项目简单描述安装wordpress错误
  • 石家庄网站开发与优化速成网站建设
  • 外贸网站设计模板重庆潼南网站建设
  • 北京网站建设排行汽车之家手机版网页
  • 免费建站平台官网无极领域0基础12天精通网站建设
  • 中英网站搭建报价表同时在线上万人的网站需要什么配置云服务器
  • 武昌做网站jw100想开个网站做外贸怎么做
  • 现在学做网站赚钱吗长春人才网招聘
  • 瑞昌市环保局网站建设世界工厂网免费平台
  • 网站空间租用有哪些服务维度网络网站建设
  • 建设银行德阳分行网站wordpress添加上一页下一页
  • 怎么修改网站的源代码晋江论坛怎么发图
  • 建立网站找什么公司seo编辑培训
  • 购物网站开发教程视频自建论坛