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

力扣刷题Day 23:最长连续序列(128)

1.题目描述

2.思路

暴力解法是会超出时间限制的。首先将nums写成一个集合(哈希表),无限循环,对于集合顶端的元素向左and向右扩展最大长度,每访问一个元素就把它从集合里删掉,循环的结束条件是集合为空。

3.代码(Python3)

class Solution:def longestConsecutive(self, nums: List[int]) -> int:def neighbor_exist(num):left_num, right_num = num - 1, num + 1current_consecutive = 1while 1:if left_num in nums_set:nums_set.remove(left_num)current_consecutive += 1left_num -= 1else:breakwhile 1:if right_num in nums_set:nums_set.remove(right_num)current_consecutive += 1right_num += 1else:breakreturn current_consecutivenums_set = set(nums)longest_consecutive = 0while 1:if len(nums_set) == 0:return longest_consecutivecurrent_consecutive = neighbor_exist(nums_set.pop())longest_consecutive = max(longest_consecutive, current_consecutive)

4.执行情况

5.感想

看了官方题解发现了更简便的代码,直接遍历集合,如果当前元素不是当前序列的开始元素就continue,如果是就扩展长度直到扩展不了,如下:

class Solution:def longestConsecutive(self, nums: List[int]) -> int:nums_set = set(nums)longest_consecutive = 0for num in nums_set:if (num - 1) not in nums_set:current_consecutive = 1current_num = numwhile (current_num + 1) in nums_set:current_consecutive += 1current_num += 1longest_consecutive = max(longest_consecutive, current_consecutive)return longest_consecutive

但是这个代码执行出来的效果竟然不如我上面写的那个。不过也确实,官方题解是把全部元素都判断了一遍是不是开头,我是用完就删,确实应该相对高效。

相关文章:

  • HarmonyOS-ArkUI:关键帧动画 keyFrameAnimateTo
  • vue部署到nginx服务器 启用gzip
  • Python 网络编程:TCP 与 UDP 协议详解及实战代码
  • 服务器口令长度、强度、时效限制
  • 基于Python Socket的多线程聊天程序案例分析
  • Springboot集成websocket实现消息推送
  • 【C++教程】C++中为什么优先使用 cout/cin流
  • Windows网络及服务:制作系统盘
  • rk3588上完成halcon的形状模型配准以及和opencv的图像转换
  • 算法 | 成长优化算法(Growth Optimizer,GO)原理,公式,应用,算法改进研究综述,matlab代码
  • 【MySQL】MySQL中的数据类型详解
  • 【前端】【面试】【业务场景】前端如何获取并生成设备唯一标识
  • 使用pyinstaller打包fastapi项目的问题记录
  • 01-初识前端
  • 级联vs端到端、全双工、轮次检测、方言语种、商业模式…语音 AI 开发者都在关心什么?丨Voice Agent 学习笔记
  • 深度学习3.5 图像分类数据集
  • 每日算法-250421
  • Java 并发包核心机制深度解析:锁的公平性、异步调度、AQS 原理全解
  • 【MySQL】:数据库事务管理
  • JavaEE--2.多线程
  • 空间站第八批科学实验样品返抵地球并交付科学家
  • 两部门发布“五一”假期全国森林草原火险形势预测
  • 全国人大常委会关于授权国务院在中国(新疆)自由贸易试验区暂时调整适用《中华人民共和国种子法》有关规定的决定
  • 美国第一季度经济环比萎缩0.3%
  • 强制性国家标准《危险化学品企业安全生产标准化通用规范》发布
  • 五部门:开展新就业形态劳动者劳动权益保障水平提升专项行动