[程式設計題] lc:128. 最長連續序列]
阿新 • • 發佈:2020-07-24
[程式設計題] lc:128. 最長連續序列
題目描述
輸入輸出
見上
思路
逐個的拿出陣列中的元素,把它假想為是最小的數。然後累加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; } }