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

合肥市有做网站的公司吗舆情报告范文

合肥市有做网站的公司吗,舆情报告范文,互联网挣钱项目平台,视频营销发布平台包括算法流程: 哈希集合去重: 通过将数组中的所有元素放入 unordered_set,自动去除重复元素。集合的查找操作是 O(1),这为后续的快速查找提供了保证。 遍历数组: 遍历数组中的每一个元素。对于每个元素,首先检…

在这里插入图片描述

算法流程:

  1. 哈希集合去重

    • 通过将数组中的所有元素放入 unordered_set,自动去除重复元素。集合的查找操作是 O(1),这为后续的快速查找提供了保证。
  2. 遍历数组

    • 遍历数组中的每一个元素。对于每个元素,首先检查它是否是某个连续序列的第一个元素。
    • 具体地,如果当前元素的前一个元素 (num - 1) 不在集合中,说明当前元素有可能是某个序列的开始。这是关键步骤,因为如果 num - 1 在集合中,说明当前元素是某个序列的中间元素,不需要再处理。
  3. 序列长度统计

    • 当确定当前元素为某个序列的起点时,进入一个循环,检查当前元素的后一个元素 (num + 1num + 2、… ) 是否存在于集合中。
    • 利用 count() 来检查每个右邻元素是否存在,如果存在则将 currentStreak 加 1 继续统计,直到右邻元素不再存在。
  4. 更新最大长度

    • 每当一个序列结束时,使用 max() 函数更新全局的最大序列长度 longestStreak

代码结构与逻辑重点:

  • 哈希集合的使用 保证了我们能够在 O(1) 时间内查找某个元素是否存在。
  • 通过判断左邻元素是否存在 确保我们只对可能的序列起点进行处理,避免了对所有元素都重复计算。
  • count() 函数的 O(1) 查找时间 确保了我们能在常数时间内判断右邻元素是否存在,从而以线性时间完成整个数组的遍历和处理。

通过哈希集合的使用,算法避免了排序操作(O(n log n)),从而保证了线性时间复杂度 O(n)。

算法思路:

首先利用数组所有元素来初始化一个哈希集(unordered_set),由于集合性质,这一步会自动去除重复元素。

然后我们再去遍历数组每个元素,仅当当前元素是可能是某个最长连续序列的第一个元素时 (左邻元素不存在于哈希集中),我们进行序列长度统计

所以,如果当前元素的前一个相邻元素(num - 1)存在于哈希集中,那么说明当前元素必然不可能是某个最长连续序列的开始元素。这种情况下我们跳过不予处理。

再回到如果当前元素的确是某个可能的最长连续序列的第一个元素时,我们利用 STL 容器的成员函数 count() 来判断当前元素的右邻元素是否存在于哈希集中,并使用一个新的变量(currentStreak)来统计当前最长连续序列的长度,

unordered_set 中,count() 函数的主要作用是检查某个值是否存在于集合中。因为 unordered_set 只存储唯一的元素,因此 count() 要么返回 0,要么返回 1

  • 返回 0:表示该元素不在集合中。
  • 返回 1:表示该元素在集合中。

如果右邻元素存在于哈希集,那么currentStreak 加1,如果不存在于哈希集中则直接跳出循环。

每当跳出循环时,意味着最近一次处理的连续序列的长度已经统计结束,需要和上一次处理的连续序列的长度(currentStreak)进行 max 对比并更新currentStreak

class Solution {
public:int longestConsecutive(vector<int>& nums) {//初始化一个无序集合并且将nums数组中的元素全部加入到这个集合中unordered_set<int> numSet(nums.begin(), nums.end());//最长序列长度int longestStreak = 0;for(int num : nums) {if(numSet.count(num - 1) == 0) {//如果当前元素的前一个连续元素并不存在于集合中,说明当前元素有可能是一个最长连续序列的开头//并且这个最长连续序列目前至少长度为1int currentStreak = 1;//然后逐个+1并在集合中判断是否存在,直到不存在时终止int currentNum = num;while(numSet.count(currentNum + 1)) {currentStreak++;currentNum++;}longestStreak = max(longestStreak, currentStreak);}}return longestStreak;}
};
http://www.tj-hxxt.cn/news/48654.html

相关文章:

  • 长春电商网站建设公司排名seo排名赚钱
  • 天地做网站如何做好一个营销方案
  • 服务器被攻击怎么办滨州seo排名
  • 做网站绘制蓝图的步骤南昌seo建站
  • 做网站开发要学什么软件精品成品网站源码
  • 两个网站链接怎么做欧洲网站服务器
  • 网站维护更新费用深圳推广公司有哪些
  • 北仑网站建设培训学校nba最新消息交易情况
  • 饰品网站模版百度统计怎么用
  • 南开建设网站企业网站模板源码
  • html做网站的原则深圳sem竞价托管
  • 服装网站banner怎么做西安疫情最新通知
  • 可以做mc图片的网站2345网址导航下载桌面
  • u盘搭建网站开发环境方法做网站的软件
  • 油气集输毕业设计代做网站企业网络营销的模式有哪些
  • 唐山做网站公司哪家好一份完整的电商运营方案
  • 怎么做网站客服弹窗网站建设规划书
  • 灵芝产品网站建设方案百度账户登录
  • o2o网站开发价格网页搜索
  • 做网站素材在哪找专业网店推广
  • 柳州学校网站建设网络营销软件哪个好用
  • 网站优化潍坊seo入门培训学多久
  • 建网站要学什么百度正式员工工资待遇
  • 网站开发程序都有什么看广告赚钱的平台
  • 网站广告动图怎么做的有没有免费推广平台
  • c语言做网站后台服务郑州网站建设方案优化
  • wordpress虚拟商品插件一键优化免费下载
  • 网站建设开什么名目百度网页游戏大厅
  • 南宁有做校园门户网站的吗百度ai开放平台
  • 冻品网站建设哪家公司做seo