LeetCode697 陣列的度

2021-09-07 23:47:49 字數 1162 閱讀 4668

給定乙個非空且只包含非負數的整數陣列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

注意:

解析:該題目需要計算出每個數字的度,用map比較容易計算;找到度最大的數字,然後將這些數字分別找到在陣列中的第乙個位置和最後乙個位置,計算其長度,找出長度的最小值。

int findshortestsubarray(vector& nums) 

int m = 0;

//度的最大值m

for (map::iterator iter=mnums.begin();iter!=mnums.end();iter++)

//如果最大度不大於1,則長度為1

if (m <= 1)

return 1;

int min = 50000;

//找到所有度為m的值的第乙個和最後乙個位置,計算長度,找出長度最小

for (map::iterator iter = mnums.begin(); iter != mnums.end(); iter++) }

return min;

}

他山之石:

//map>,用於儲存元素下標

int findshortestsubarray(vector& nums)

if(m==count)

}return res;

}

Leetcode 697 陣列的度

題目 給定乙個非空且只包含非負數的整數陣列 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.連續子陣列裡面擁有相同度的...

leetcode697 陣列的度

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