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

c# 手机版网站开发电商主要是做什么工作

c# 手机版网站开发,电商主要是做什么工作,在线查网站的ip地址,东莞市建题目描述 我的思路 我的思路比较暴力,就是首先将数组从小到大进行排序,然后再依次遍历判断序列是否连续并时时更新连续序列的最长长度。比如示例1:nums [100, 4, 200, 1, 3, 2],第一步先将数组进行排序得到sort_nums [1, 2, 3,…

题目描述

在这里插入图片描述

我的思路

我的思路比较暴力,就是首先将数组从小到大进行排序,然后再依次遍历判断序列是否连续并时时更新连续序列的最长长度。比如示例1:nums = [100, 4, 200, 1, 3, 2],第一步先将数组进行排序得到sort_nums = [1, 2, 3, 4, 100, 200];第二步遍历的时候其实不用每个数都遍历,比如遍历1的时候发现1和后面的2,3,4是连续的,那么后续2,3,4就不用再遍历了,直接从100开始遍历;每遍历一个元素时记录以该元素开头的连续序列长度,实时更新前面所有连续序列的最长长度;最后输出最长长度。

这个思路是可以解决问题的,但是时间复杂度明显不符合题目要求,首先看排序的时间复杂度就超过O(n)了,后续遍历的时间复杂度为O(n^2),算法仍需进一步优化。

官方题解:哈希表

看了官方题解的哈希表解法,再对照我自己的暴力搜索思路,发现了2个关键的改进点。

1、利用哈希表搜索高效的优势,替代数组元素遍历(因为本质上是判断特定元素是否存在的问题)。

2、利用连续序列的性质来减少重复搜索的次数,比如发现从1开始的1,2,3,4的连续序列后,再看从2开始的连续序列时就可以直接跳过了,因为2的前一数1存在,因此以1开头的连续序列肯定比2开头的连续序列长。

经过这两点的优化,算法的复杂度就是搜索哈希表的复杂度,即O(n)。

该思路的代码如下

class Solution:def longestConsecutive(self, nums: List[int]) -> int:longest_streak = 0num_set = set(nums) # 转成集合,只留唯一元素即可for num in num_set:if num - 1 not in num_set: # 如果前一个元素并不存在,则作为序列的起始元素进行连续序列长度的计数current_num = numcurrent_streak = 1 while current_num + 1 in num_set: # 若下一个数字存在则连续序列长度进行更新current_num += 1current_streak += 1longest_streak = max(longest_streak, current_streak)return longest_streak

参考

力扣官方题解: 最长连续序列

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

相关文章:

  • 无锡网站建设哪家公司好如何注册咨询公司
  • 诚讯网站设计wordpress模板仿新版虎嗅huxiu-new主题
  • 建设部网站房地产资质广告设计公司有什么岗位
  • 有没有免费建站苏州网站建设-中国互联
  • 网站开发前端库有哪些做搞笑视频的网站
  • 深圳做网站补贴网站建设需要哪些职位
  • 厦门入夏网站建设公司新浪短链接在线生成
  • 网站html静态化解决方案湖北网站建设哪家有
  • 网站设计公司go语言做的网站
  • 自己做网站卖什么好邢台列表网
  • 丰镇网站建设jexus wordpress
  • wordpress 视频站模版网站页面设计招聘
  • 淘宝网站建设问题wordpress关注功能
  • 聊城做wap网站找谁线上营销有哪些
  • 哪个网站上网好珠海市区工商年报在哪个网站做
  • 怎么用腾讯云服务器做网站注册无地址注册公司
  • 巴适网站建设创建网站要申请域名吗
  • 延庆手机网站建设做网站的问卷调查
  • 湖南seo优化哪家好wordpress seo模板
  • 门户网站如何建设非交互式网站
  • 模板网站的弊端在哪wordpress的html编辑器插件
  • 如何使网站做的更好申请免费个人网站空间
  • 获取网站域名杭州网站维护
  • 做行业网站广告东莞人才网官网
  • 网站图片移动怎么做学生个人网页设计作品
  • 网站建设教育板块长沙公司制作网站费用
  • 牛商网做的网站有哪些1 设计一个企业网站
  • 网站开发基础学习外贸建站教程
  • 做文献的ppt模板下载网站做网站 用什么兼容
  • 课程网站开发与设计本科自考第二专业