zoukankan      html  css  js  c++  java
  • [编程题] lc:128. 最长连续序列]

    [编程题] lc:128. 最长连续序列

    题目描述

    image-20200724125948043

    输入输出

    见上

    思路

    逐个的拿出数组中的元素,把它假想为是最小的数。然后累加1且去哈希表中找是否有,如果有count就加1、然后知道set中没有的时候得出本次count的值。又一次拿出数组中的第2个元素执行如上操作。最终返回一个最长的count值。

    Java代码

    import java.util.*;
    
    class Solution {
        public static int longestConsecutive(int[] nums) {
            //极限值
            if(nums==null || nums.length==0){return 0;}
    
            int max = 1;
            int count = 1;
    
            //哈希表
            HashSet<Integer> set = new HashSet<Integer>();
            for(int num : nums){
                set.add(num);
            }
    
            //遍历数组,拿出1个元素执行1轮操作,得出一个count值
            for(int i = 0;i<nums.length;i++){
                //默认拿出这次认为是最小的值
                int min = nums[i];
                //逐渐递增得出连续递增序列
                while(true){
                    int cur = min+1;
                    if(set.contains(cur)){
                        count++;
                        min = cur;
    
                    }else{
                        max = count>max?count:max;
                        count=1;  //count回归1计数
                        break;
                    }
                }
            }
    
            return max;
        }
    }
    
  • 相关阅读:
    gotour源码阅读
    CPU知识
    GCC知识
    go/src/make.bash阅读
    Go的pprof使用
    CGI的一些知识点
    STM32——C语言数据类型
    css 学习资料
    项目管理实践教程
    js 格式验证总结
  • 原文地址:https://www.cnblogs.com/jiyongjia/p/13371384.html
Copyright © 2011-2022 走看看