LeetCode849. 到最近的人的最大距离
在一排座位( seats
)中,1
代表有人坐在座位上,0
代表座位上是空的。
至少有一个空座位,且至少有一人坐在座位上。
亚历克斯希望坐在一个能够使他与离他最近的人之间的距离达到最大化的座位上。
返回他到离他最近的人的最大距离。
示例 1:
输入:[1,0,0,0,1,0,1] 输出:2 解释: 如果亚历克斯坐在第二个空位(seats[2])上,他到离他最近的人的距离为 2 。 如果亚历克斯坐在其它任何一个空位上,他到离他最近的人的距离为 1 。 因此,他到离他最近的人的最大距离是 2 。
示例 2:
输入:[1,0,0,0] 输出:3 解释: 如果亚历克斯坐在最后一个座位上,他离最近的人有 3 个座位远。 这是可能的最大距离,所以答案是 3 。
提示:
1 <= seats.length <= 20000
seats
中只含有 0 和 1,至少有一个0
,且至少有一个1
。
思路:遍历数组,找到空座位的索引,然后找到距离该空座位最近的有人坐的座位,并求出距离,更新最大距离。
class Solution {public int maxDistToClosest(int[] seats) {int max=0; //最大距离for(int i=0;i<seats.length;i++) {if(seats[i]==0) {int minD=getMinDistance(seats,i);int t=Math.abs(minD-i);if(t>max) {max=t;}}}return max;}public int getMinDistance(int[] seats,int k) {int leftIndex=k; //向左移动的指针int rightIndex=k;while(leftIndex>=0&&rightIndex<seats.length) {if(seats[leftIndex]==1) {return leftIndex;}if(seats[rightIndex]==1) {return rightIndex;}leftIndex--;rightIndex++;}while(leftIndex>=0) {if(seats[leftIndex]==1) {return leftIndex;}leftIndex--;}while(rightIndex<seats.length) {if(seats[rightIndex]==1) {return rightIndex;}rightIndex++;}return 0;}
}
LeetCode849. 到最近的人的最大距离相关推荐
- LeetCode 849. 到最近的人的最大距离
1. 题目 在一排座位( seats)中,1 代表有人坐在座位上,0 代表座位上是空的. 至少有一个空座位,且至少有一人坐在座位上. 亚历克斯希望坐在一个能够使他与离他最近的人之间的距离达到最大化的座 ...
- 849. 到最近的人的最大距离
在一排座位( seats)中,1 代表有人坐在座位上,0 代表座位上是空的. 至少有一个空座位,且至少有一人坐在座位上. 亚历克斯希望坐在一个能够使他与离他最近的人之间的距离达到最大化的座位上. 返回 ...
- C#LeetCode刷题之#849-到最近的人的最大距离(Maximize Distance to Closest Person)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3754 访问. 在一排座位( seats)中,1 代表有人坐在座位 ...
- mysql 工具 uwp_UWP 创建动画的极简方式 — LottieUWP
提到 UWP 中创建动画,第一个想到的大多都是 StoryBoard.因为 UWP 和 WPF 的界面都是基于 XAML 语言的,所以实现 StoryBoard 会非常方便. 来看一个简单的 Stor ...
- 动态规划(持续更新、整理)
动态规划 记忆化搜索 不同路径:leetcode-62 分割回文串:leetcode-131 单词拆分II:leetcode-140 戳气球:leetcode-312 零钱兑换:leetcode-32 ...
- Java实现选最远距离的座位_LeetCode算法题-Maximize Distance to Closest Person(Java实现)...
这是悦乐书的第328次更新,第351篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第198题(顺位题号是849).在一排座位中,1表示一个人坐在该座位上,0表示座位是空的 ...
- python怎么运行丘比特之箭_test
leetcode_001.py-----python编写一个函数求两数之和 leetcode_002.py-----python编写一个函数求两数相加 leetcode_003.py-----pyth ...
- C#LeetCode刷题-数组
数组篇 # 题名 刷题 通过率 难度 1 两数之和 C#LeetCode刷题之#1-两数之和(Two Sum) 43.1% 简单 4 两个排序数组的中位数 C#LeetCode刷题之#4-两个排序数组 ...
- 从零开始刷Leetcode——数组(830.849.888)
文章目录 830. 较大分组的位置 849. 到最近的人的最大距离 888. 公平的糖果交换 830. 较大分组的位置 在一个由小写字母构成的字符串 S 中,包含由一些连续的相同字符所构成的分组. 例 ...
最新文章
- 【springboot】配置
- 测试角度的并发和幂等问题总结
- 在yii2中,让你action参数支持POST数据的小方法
- Ubuntu14.04下安装wineqq国际版和卸载QQ
- 创建一个Business partner reference extension field
- win10环境,Eclipse安装Maven
- qt程序使用多行linux命令,开发Qt应用程序的基本方法总结
- “鸡肋”的百度,掉队了 BAT? | 畅言
- html%3cform%3e不换行,HTML URL 编码
- X86平台下基于grub2+busybo+linux-2.6.36制作linux系统
- window7 右键菜单显示-》在此处打开命令窗口
- Atitit.软件中见算法 程序设计五大种类算法
- paip.css的覆盖
- linux产生大量随机数据,linux产生随机数与随机字符
- 数据结构和算法常见面试题大全
- Oracle数据库中,表的锁死查询与解锁。
- 简简单单几行Python代码就能暴力破解网站登录密码,真有这么强吗?
- 大一计算机专业学期计划范文,大一新学期学习计划范文(通用5篇)
- 构建自己的个人信息资料库
- bzoj 2708: [Violet 1]木偶