iT邦幫忙

2025 iThome 鐵人賽

0
自我挑戰組

Leetcode30天挑戰系列 第 29

Day29-Longest Consecutive Sequence

  • 分享至 

  • xImage
  •  

今天的題目為128.Longest Consecutive Sequence,給定一個未排序的整數陣列 nums,回傳其中最長的連續元素序列的長度,且必須設計一個時間複雜度為O(n)的演算法。

以下為程式碼:

import java.util.HashSet;
import java.util.Set;

class Solution {
    public int longestConsecutive(int[] nums) {
        Set<Integer> numSet = new HashSet<>();
        for (int num : nums) {
            numSet.add(num);
        }

        int longest = 0;

        for (int num : numSet) {
            if (!numSet.contains(num - 1)) {
                int currentNum = num;
                int currentStreak = 1;

                while (numSet.contains(currentNum + 1)) {
                    currentNum++;
                    currentStreak++;
                }

                longest = Math.max(longest, currentStreak);
            }
        }

        return longest;
    }
}

上一篇
Day28-Word Ladder
下一篇
Day30-Sum Root to Leaf Numbers
系列文
Leetcode30天挑戰30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言