力扣打卡——day01

128. 最长连续序列 - 力扣(LeetCode)

这道题目最开始大家想的肯定是sort,然后计数计算最长序列。但是要求时间复杂度为:o(n),就不能用sort 了。一般在leetcode中,对时间复杂度有要求,就用空间来换,对空间复杂度有要求,就用时间来换。

基于这种思路我们就想要求最长的,就是要记录下有没有相邻的元素,比如遍历到100这个元素,我们需要查看99, 101这两个元素在不在序列中,这样去更新最大长度。而记录元素有没有这个事我们太熟悉了,用set这种数据结构,而set这种数据结构是需要o(n)的空间来换取的,这就是我们刚才说的用空间来换时间。

复制代码
class Solution {
    public int longestConsecutive(int[] nums) {
        //使用空间复杂度进行换时间复杂度
        Set<Integer> numsSet=new HashSet<>();
        for(int num:nums){
            numsSet.add(num);
        }
        int longMax=0;
        for(int num: nums){
             int number=num;
            if(numsSet.remove(number)){
                int currtLength=1;
                //向左进行移动
                while(numsSet.remove(number-1)) number--;
                currtLength+=(num-number);

                //向右进行移动
                number=num;
                while(numsSet.remove(number+1)) number++;
                currtLength+=(number-num);
                //最后进行比较
                longMax= Math.max(currtLength,longMax);
            }
          
        }
        return longMax;
    }
}

283. 移动零 - 力扣(LeetCode)

思路: 使用双指针将非0的数据向前移动,末尾进行补零

复制代码
class Solution {
    public void moveZeroes(int[] nums) {
        //使用双指针就行
        int slow=0;

        //将非0的数据向前移动
        for(int fast=0;fast<nums.length;fast++){
            if(nums[fast]!=0){
                nums[slow++]=nums[fast];
            }
        }
        //末尾进行补零
        for(;slow<nums.length;slow++){
            nums[slow]=0;
        }
        
    }
}
相关推荐
拓恒技术5 小时前
无人机巡检AI算法的工程化落地:从需求到交付的5个核心环节
人工智能·算法·无人机
晨曦中的暮雨6 小时前
限流算法——固定窗口、滑动窗口、漏桶、令牌桶
java·开发语言·算法
怕浪猫6 小时前
Claude Code vs Codex:Computer Use 实现原理深度拆解
算法·面试·github
文丑颜不良啊7 小时前
LeetCode876~900题目解析
java·leetcode
罗西的思考8 小时前
AI 时代的 “房谋杜断”:如何培养能力、品味与判断力
人工智能·算法·机器学习
aloha_7898 小时前
Java 基础、集合、异常与 JUnit 5 速查
java·junit·sqlserver
淡海水8 小时前
07-02-源码-.NET Core GC分配路径
算法·unity·c#·.netcore·gc·1024程序员节
知守观8 小时前
设计模式实战:从真实老项目中看标准模板方法与工厂的落地
java·spring·设计模式
独隅8 小时前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code
Wang's Blog9 小时前
Java 项目实战: 交友项目 - 圈子功能实现:总结
java·开发语言·交友