【Leetcode】2078. Two Furthest Houses With Different Colors

阅读: 评论:0

【Leetcode】2078. Two Furthest Houses With Different Colors

【Leetcode】2078. Two Furthest Houses With Different Colors

题目地址:

/

给定一个长 n n n数组 A A A,求 max ⁡ i < j { j − i : A [ i ] ≠ A [ j ] } max_{i<j} {j-i:A[i]ne A[j]} maxi<j​{j−i:A[i]​=A[j]}。

构造一个新数组 B B B,其从左到右只含按 A A A从左到右次序的不同数字,同时用一个哈希表记录 A A A中每个数第一次出现的位置。接下来从右向左枚举 A [ i ] A[i] A[i],那么离 A [ i ] A[i] A[i]最远的数可以通过从左到右枚举 B B B来找到,至多枚举两个数就能知道。代码如下:

class Solution {public:int maxDistance(vector<int>& v) {unordered_map<int, int> mp;vector<int> vv;for (int i = 0; i < v.size(); i++)if (!mp.count(v[i])) {vv.push_back(v[i]);mp[v[i]] = i;}int res = 0;for (int i = v.size() - 1; i; i--)for (int j = 0; j < vv.size(); j++) {if (i <= mp[vv[j]]) break;if (v[i] != vv[j]) {res = max(res, i - mp[vv[j]]);break;}}return res;}
};

时空复杂度 O ( n ) O(n) O(n)。

本文发布于:2024-01-28 10:13:06,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064079876695.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:Leetcode   Furthest   Colors   Houses
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23