您的位置:首页 > 娱乐 > 明星 > Leetcodo697.数组的度 ——codetop

Leetcodo697.数组的度 ——codetop

2024/12/28 13:37:44 来源:https://blog.csdn.net/qq_52313711/article/details/141710086  浏览:    关键词:Leetcodo697.数组的度 ——codetop

题目

697. 数组的度 - 力扣(LeetCode)


代码(首刷自解)

class Solution {
public:int findShortestSubArray(vector<int>& nums) {// 遍历一遍,记录每个数字的起始位置// 当度更新时,记录最大新最大长度int res = 1;//长度unordered_map<int, pair<int, int>> um;// key: 值  value:初次索引,次数int maxDo = -1;for (int i = 0; i < nums.size(); i++) {// 如果次数为0,记录初次索引,次数+1if (um[nums[i]].second == 0) {um[nums[i]].first = i;um[nums[i]].second++;}// 如果次数不为0,次数+1,与最大次数作比较else {um[nums[i]].second++;// 若最大次数较小,更新最大次数,更新长度if (um[nums[i]].second > maxDo) {maxDo = um[nums[i]].second;res = i - um[nums[i]].first + 1;}else if (um[nums[i]].second == maxDo) { // 容易忽略,不加这个特殊条件会出错res = min(res, i - um[nums[i]].first + 1);}}}//cout<<maxDo<<endl;return res;}
};

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com