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

LeetCode hot 100 day2

最长连续序列

题目链接

用排序

class Solution {
public:int longestConsecutive(vector<int>& nums) {sort(nums.begin(),nums.end());if(nums.size()<=1) return nums.size();int ans=0;int res=1;for(int i=0;i<nums.size()-1;i++){if(nums[i+1]==nums[i]+1){res++;}else if(nums[i+1]==nums[i]) continue;else{ans=max(ans,res);res=1;}}ans=max(ans,res);return ans;}
};

O(n)

class Solution {
public:int longestConsecutive(vector<int>& nums) {// 如果数组为空或只有一个元素,最长连续序列长度就是数组长度if(nums.size() <= 1) return nums.size();int ans = 0;   // 记录最长连续序列的长度int res = 1;   // 当前连续序列的长度// 使用 unordered_set 存储所有元素,去重并支持 O(1) 时间查找unordered_set<int> mp(nums.begin(), nums.end());// 遍历集合中的每个元素for(auto& it : mp) {// 如果它的前一个数不存在,说明这个数是某个连续序列的起点if(mp.find(it - 1) == mp.end()) {int x = it + 1;  // 从当前数的下一个开始查找// 向后查找连续的数while(mp.find(x) != mp.end()) {res++;  // 找到一个连续的数就增加长度x++;}// 更新最长连续序列的长度ans = max(res, ans);res = 1;  // 重置当前长度计数器}}return ans;}
};

移动零

题目链接

借助栈

class Solution {
public:void moveZeroes(vector<int>& nums) {int cnt = 0;  // 计数器,用来记录非零元素的个数stack<int> stk;  // 使用栈来存储所有非零元素// 第一遍遍历,将所有非零的数字压入栈中for(int num : nums) {if(num != 0) {stk.push(num);  // 非零数字压入栈}}// 如果栈为空,则说明没有非零元素,直接返回if(stk.empty()) return;// 第二遍遍历,从后往前填充数组for(int i = nums.size() - 1; i >= 0; i--) {// 如果栈还有元素,则从栈中取出一个数字并赋值给当前数组位置if(i <= stk.size() - 1) {nums[i] = stk.top();  // 从栈中获取非零数字stk.pop();  // 弹出栈顶元素} else {// 如果栈已经没有非零数字了,当前数组位置填充0nums[i] = 0;}}}
};

双指针

class Solution {
public:void moveZeroes(vector<int>& nums) {int j = 1;  // 用于寻找当前零元素后面非零元素的位置// 遍历数组for (int i = 0; i < nums.size(); i++) {// 如果当前元素是 0if (nums[i] == 0) {// 从当前位置 i 后开始寻找第一个非零元素int j = i + 1;// 查找下一个非零元素的位置while (j < nums.size() && nums[j] == 0) {j++;  // 如果是零,继续向后查找}// 如果 j 在数组范围内,找到一个非零元素if (j < nums.size()) {nums[i] = nums[j];  // 将非零元素移到当前零的位置nums[j] = 0;  // 把当前位置变为零}}}}
};
http://www.xdnf.cn/news/1303291.html

相关文章:

  • AAAI爆款:目标检测新范式,模块化设计封神之作
  • 办公效率提升指南:完成重复任务自动化
  • 【自动化测试】通过AI技术如何自动建设接口自动化用例(有关必回)
  • GPT-5 官方前瞻:它将如何重塑你的数字生活?
  • 5G赋能井下“毛细血管”:巴拉素煤矿零散排水点智能监控系统
  • [激光原理与应用-283]:理论 - 波动光学 - 电磁波概述
  • 架构需求规格说明(ARD):项目成功的隐形引擎
  • 【nginx端口】修改nginx全局模块、子模块配置,重启后依然监听80端口
  • YOLOv8目标检测网络结构理论
  • 笔试——Day39
  • DevEco Studio 6.0.0 元服务页面跳转失败
  • Spring事物
  • 智能座舱软件架构设计的宏观决策框架
  • 【自动驾驶】自动驾驶概述 ② ( 自动驾驶技术路径 | L0 ~ L5 级别自动驾驶 )
  • 数据结构:二叉树的表示方式(Representation of Binary Trees)
  • 【测试工具】JMeter基本使用及MySQL数据库压力测试
  • Baumer高防护相机如何通过YoloV8深度学习模型实现驾驶员疲劳的检测识别(C#代码UI界面版)
  • python的美食交流社区系统
  • @[TOC](计算机是如何⼯作的) JavaEE==网站开发
  • 前端性能优化工具Performance面板实战指南
  • 【swift开发】SwiftUI概述 SwiftUI 全面解析:苹果生态的声明式 UI 革命
  • 【C#补全计划】事件
  • 【2D】圆上数值积分(半径方向用高斯积分减少点数)
  • 综合案例:Python 函数知识整合 — 学生成绩管理系统
  • Python 类(Class)学习
  • 【新手入门】Android基础知识(一):系统架构
  • 【Golang】:流程控制语句
  • 【Vibe Coding 工程之 StockAnalyzerPro 记录】- EP1.先写 PRD
  • 【秋招笔试】2025.08.15饿了么秋招机考-第一题
  • P4069 [SDOI2016] 游戏 Solution