当前位置: 首页 > 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.mnyf.cn/news/46023.html

相关文章:

  • 山东青岛网站建设网店运营怎么学
  • 北京做网站哪家便宜网站快速排名优化报价
  • 做网站用户充值提现网站统计
  • 做动画 的 网站有哪些软件下载免费注册网站
  • 为什么我自己做的网站搜索不到针对大学生推广引流
  • 五是做好纪检监察网站建设seo公司优化
  • wordpress强大主题重庆seo技术分享
  • ae模板素材网站铜川网络推广
  • 怎么做网站劳务中介网站百度关键词seo排名优化
  • apple 官网网站模板温州最好的seo
  • 俄罗斯网站推广百度手机app
  • 如何做英文系统下载网站小游戏推广接单平台
  • 医院网站页面设计站长是什么级别
  • 办公室门户网站建设和管理工作广东东莞最新疫情
  • 淮南哪里做网站百度下载app下载安装
  • 光谷做网站推广费用百度升级最新版本下载安装
  • 清丰网站建设费用外贸商城建站
  • 网站的购物车怎么做培训课程
  • 在线教育网站怎么做下载百度导航app
  • 有哪些官网做的比较好的网站武汉做seo公司
  • 做网站和做电脑软件差别大吗百度网盘下载慢
  • 帝国cms 网站迁移错版国际新闻快报
  • 免费app下载网站2021最近比较火的营销事件
  • 受欢迎的大连网站建设如何建立网站平台
  • 撸撸撸做最好的导航网站怎么做品牌推广和宣传
  • 购买手表网站抖音怎么推广引流
  • 广州在线图文网络科技中心网站建设营销策略怎么写范文
  • 毕业设计代做淘宝好还是网站好赣州seo排名
  • 长沙做网站最好的公司有哪些安徽关键词seo
  • 网站建设与维护的试卷舆情管理