2078. 两栋颜色不同且距离最远的房子 - 力扣(LeetCode)
2078. 两栋颜色不同且距离最远的房子 - 街上有 n 栋房子整齐地排成一列,每栋房子都粉刷上了漂亮的颜色。给你一个下标从 0 开始且长度为 n 的整数数组 colors ,其中 colors[i] 表示第 i 栋房子的颜色。 返回 两栋 颜色 不同 房子之间的 最大 距离。 第 i 栋房子和第 j 栋房子之间的距离是 abs(i - j) ,其中 abs(x) 是 x 的绝对值。 示例...
思路
因为题目保证至少有两个不同颜色,而题目要求的距离是下标距离,那么最大距离必然牵涉到首个元素或者最后一个元素(中间两个不同元素的下标距离肯定没有离首 or 尾元素的距离大),因此找和首尾元素不同颜色的下标即可。
代码
class Solution {
public:
int maxDistance(vector<int>& colors) {
// 因为保证至少有两个不同颜色
// 找到和第一个或者最后一个下标不同颜色的相距最远的房子
int res=0;
int n=colors.size();
for(int i=1;i<n;i++){
if(colors[i]!=colors[0]||colors[n-1-i]!=colors[n-1]){
res=max(res,i);
}
}
return res;
}
};
1 个帖子 - 1 位参与者