当前位置: 首页 > 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.dtcms.com/a/332563.html

相关文章:

  • redis6的多线程原理
  • Redis 05 Redis cluster
  • 【新手入门】Android基础知识(一):系统架构
  • Java 中使用阿里云日志服务(SLS)完整指南
  • 信息系统架构:构建企业数字基石的蓝图与方法
  • 软考 系统架构设计师系列知识点之杂项集萃(123)
  • Matlab利用系统辨识工具箱辨识自带数据集的控制系统参数(传递函数篇)
  • DeepSeek-V2:一种强大、经济且高效的混合专家语言模型
  • MySQL视图:虚拟表的强大用途与限制
  • C++:stl-> list的模拟实现
  • Day59--图论--47. 参加科学大会(卡码网),94. 城市间货物运输 I(卡码网)
  • Jmeter自定义脚本
  • paimon实时数据湖教程-主键表更新机制
  • 微服务的编程测评系统11-jmeter-redis-竞赛列表
  • Helm 常用命令 + Bitnami 中间件部署速查表
  • EhViewer安卓ios全版本类下载安装工具的完整路径解析
  • 【web自动化】-8-EXCEL数据驱动
  • 记录一下 StarRocks 点查的 Profile Metrics
  • 科技赋能千年养生丨七彩喜艾灸机器人,让传统智慧触手可及
  • 醋酸镧:看不见的科技助力
  • 学习笔记与效率提升指南:编程、记忆与面试备考
  • QML实现数据可视化
  • 解决Electron透明窗口点击不影响其他应用
  • [系统架构设计师]数据库设计基础知识(六)
  • 【Linux】编辑器vim的使用
  • 17.3 删除购物车商品
  • @Autowired @Resource IDE警告 和 依赖注入
  • 【解决笔记】MyBatis-Plus 中无 selectList 方法
  • 【详细操作指南】如何将 Moodle 与编辑器连接,以修改文档、检查和批改作业等
  • JavaScript 核心基础:类型检测、DOM 操作与事件处理