Leetcode 2078. 两栋颜色不同且距离最远的房子(已解决)
2022/6/4 23:20:08
本文主要是介绍Leetcode 2078. 两栋颜色不同且距离最远的房子(已解决),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
街上有 n 栋房子整齐地排成一列,每栋房子都粉刷上了漂亮的颜色。给你一个下标从 0 开始且长度为 n 的整数数组 colors ,其中 colors[i] 表示第 i 栋房子的颜色。
返回 两栋 颜色 不同 房子之间的 最大 距离。
第 i 栋房子和第 j 栋房子之间的距离是 abs(i - j) ,其中 abs(x) 是 x 的绝对值。
示例 1:
输入:colors = [1,1,1,6,1,1,1] 输出:3 解释:上图中,颜色 1 标识成蓝色,颜色 6 标识成红色。 两栋颜色不同且距离最远的房子是房子 0 和房子 3 。 房子 0 的颜色是颜色 1 ,房子 3 的颜色是颜色 6 。两栋房子之间的距离是 abs(0 - 3) = 3 。 注意,房子 3 和房子 6 也可以产生最佳答案。
示例 2:
输入:colors = [1,8,3,8,3] 输出:4 解释:上图中,颜色 1 标识成蓝色,颜色 8 标识成黄色,颜色 3 标识成绿色。 两栋颜色不同且距离最远的房子是房子 0 和房子 4 。 房子 0 的颜色是颜色 1 ,房子 4 的颜色是颜色 3 。两栋房子之间的距离是 abs(0 - 4) = 4 。
示例 3:
输入:colors = [0,1] 输出:1 解释:两栋颜色不同且距离最远的房子是房子 0 和房子 1 。 房子 0 的颜色是颜色 0 ,房子 1 的颜色是颜色 1 。两栋房子之间的距离是 abs(0 - 1) = 1 。
提示:
- n == colors.length
- 2 <= n <= 100
- 0 <= colors[i] <= 100
- 生成的测试数据满足 至少 存在 2 栋颜色不同的房子
主要思路:双指针思路
以左边为核心,左边保持不动,右边递减
以右边未核心,左边递减
Code:
class Solution { public: int maxDistance(vector<int>& colors) { int maxlen=1; for(int i=0,j=colors.size()-1;i<j;i++) { if(colors[i]!=colors[j]) maxlen=max(j-i,maxlen); } for(int i=0,j=colors.size()-1;i<j;j--) { if(colors[i]!=colors[j]) maxlen=max(j-i,maxlen); } return maxlen; } };
这篇关于Leetcode 2078. 两栋颜色不同且距离最远的房子(已解决)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升
- 2024-05-08代码报错不用愁,CodeGeeX一键完成代码修复、错误解释的功能上线了!