A.每日一题:2078. 两栋颜色不同且距离最远的房子
题目链接2078. 两栋颜色不同且距离最远的房子简单算法原理解法一暴力枚举2ms击败10.42%时间复杂度O(N²)思路很简单逐个枚举每个元素如果后续元素有与之不同的就更新ret结果取最大值解法二贪心0ms击败100.00%时间复杂度O(N)其实我们要找最大距离的话最直观的就是第一个位置和最后一个位置因为第一个位置和最后一个位置的元素本身就是一个值因此我们只需找到与第一个位置元素不同的下标 i 和与最后一个位置元素不同的下标 i 即可答案max( i , n-1-i)JAVA代码class Solution { //解法一暴力枚举 public int maxDistance(int[] colors) { int ret0; for(int i0;icolors.length;i) for(int ji1;jcolors.length;j) if(colors[i]!colors[j]) retMath.max(ret,j-i); return ret; } }class Solution { //解法二贪心 public int maxDistance(int[] colors) { int ret0,ncolors.length; for(int i1;in;i) if(colors[i]!colors[0]) reti; for(int in-2;i0;i--) if(colors[i]!colors[n-1]) retMath.max(ret,n-1-i); return ret; } }