多语言企业网站源码,正规网络推广平台,有什么好用的搜索引擎,合肥网站建设网页设计文章目录1. 题目2. 解题1. 题目
给你一个整数数组 cards #xff0c;其中 cards[i] 表示第 i 张卡牌的 值 。如果两张卡牌的值相同#xff0c;则认为这一对卡牌 匹配 。
返回你必须拿起的最小连续卡牌数#xff0c;以使在拿起的卡牌中有一对匹配的卡牌。 如果无法得到一对…
文章目录1. 题目2. 解题1. 题目
给你一个整数数组 cards 其中 cards[i] 表示第 i 张卡牌的 值 。如果两张卡牌的值相同则认为这一对卡牌 匹配 。
返回你必须拿起的最小连续卡牌数以使在拿起的卡牌中有一对匹配的卡牌。 如果无法得到一对匹配的卡牌返回 -1 。
示例 1
输入cards [3,4,2,3,4,7]
输出4
解释拿起卡牌 [3,4,2,3] 将会包含一对值为 3 的匹配卡牌。注意拿起 [4,2,3,4] 也是最优方案。示例 2
输入cards [1,0,5,3]
输出-1
解释无法找出含一对匹配卡牌的一组连续卡牌。提示
1 cards.length 10^5
0 cards[i] 10^6来源力扣LeetCode 链接https://leetcode.cn/problems/minimum-consecutive-cards-to-pick-up 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题
哈希记录最近的一个 某数字 的下标
class Solution {
public:int minimumCardPickup(vectorint cards) {unordered_mapint, int idx;int ans INT_MAX, n cards.size();for(int i 0; i n; i){if(idx.find(cards[i])!idx.end()){ans min(ans, i-idx[cards[i]]1);}idx[cards[i]] i;}return ansINT_MAX ? -1 : ans;}
};252 ms 112.3 MB C 我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号Michael阿明一起加油、一起学习进步