Leetcode 697 陣列的度

2022-03-27 00:08:52 字數 1160 閱讀 9200

給定乙個非空且只包含非負數的整數陣列 nums,陣列的度的定義是指數組裡任一元素出現頻數的最大值。

你的任務是在 nums 中找到與 nums 擁有相同大小的度的最短連續子陣列,返回其長度。

示例 1:

輸入:[1, 2, 2, 3, 1]

輸出:2

解釋:輸入陣列的度是2,因為元素1和2的出現頻數最大,均為2.

連續子陣列裡面擁有相同度的有如下所示:

[1, 2, 2, 3, 1], [1, 2, 2, 3], [2, 2, 3, 1], [1, 2, 2], [2, 2, 3], [2, 2]

最短連續子陣列[2, 2]的長度為2,所以返回2.

示例 2:

輸入:[1,2,2,3,1,4,2]

輸出:6

​ 這道題目的稍稍有點繞,需要理解兩個含義,乙個是陣列的度,另乙個是包含陣列的度的最短子陣列,稍稍解釋下這兩個概念題目就很清晰了

class solution 

//若出現次數等於陣列的度,則計算子陣列的大小

if (count == max)

right++;}}

return res;

}//根據雜湊表獲取出現次數最多的數字

//max 記錄陣列的度

private listgetmax()

//雜湊表統計每個數字出現的次數

private void getmap(int nums)

}}

/*

在實際**中,我們使用雜湊表實現該功能,每乙個數對映到乙個長度為 33 的陣列,

陣列中的三個元素分別代表這個數出現的次數、這個數在原陣列中第一次出現的位置

和這個數在原陣列中最後一次出現的位置。當我們記錄完所有資訊後,我們需要遍歷該雜湊表,

找到元素出現次數最多,且前後位置差最小的數

*/class solution else if(count == array[0])

}return res;

}private void getmap(int nums)else);}}

}}

Leetcode 697 陣列的度

題目 給定乙個非空且只包含非負數的整數陣列 nums,陣列的度的定義是指數組裡任一元素出現頻數的最大值。你的任務是找到與 nums 擁有相同大小的度的最短連續子陣列,返回其長度。示例 1 輸入 1,2,2,3,1 輸出 2 解釋 輸入陣列的度是2,因為元素1和2的出現頻數最大,均為2.連續子陣列裡面...

LeetCode697 陣列的度

給定乙個非空且只包含非負數的整數陣列nums,陣列的度的定義是指數組裡任一元素出現頻數的最大值。你的任務是找到與nums擁有相同大小的度的最短連續子陣列,返回其長度。示例 1 輸入 1,2,2,3,1 輸出 2 解釋 輸入陣列的度是2,因為元素1和2的出現頻數最大,均為2.連續子陣列裡面擁有相同度的...

LeetCode 697 陣列的度

給定乙個非空且只包含非負數的整數陣列 nums,陣列的度的定義是指數組裡任一元素出現頻數的最大值。你的任務是找到與 nums 擁有相同大小的度的最短連續子陣列,返回其長度。示例輸入 1,2,2,3,1 輸出 2 解釋 輸入陣列的度是2,因為元素1和2的出現頻數最大,均為2.連續子陣列裡面擁有相同度的...