博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] 849. Maximize Distance to Closest Person @ python
阅读量:4225 次
发布时间:2019-05-26

本文共 1054 字,大约阅读时间需要 3 分钟。

一.题目:

给出了一个列表表示一排座位,1代表这个位置有人坐,0代表这个位置没人做。现在需要找一个位置坐,并找出坐在哪个位置时,离旁边人的座位的距离最大,是多少。
二.解题思路:
我们可以先将座位列表分割开,记录每块部分的大小,取其中最大的一块.同时注意,座位两端的位置要分开考虑.代码如下:

class Solution(object):    def maxDistToClosest(self, seats):        """        :type seats: List[int]        :rtype: int        """        new_seats = seats[:]        for i in range(len(new_seats)):            new_seats[i] = str(new_seats[i])        str_seats = "".join(new_seats)        zero_list = str_seats.split("1")        max_lens = 0        for zero in zero_list:            max_lens = max(max_lens,len(zero))        max_lens = max(1,(max_lens+1)/2)                cnt = 0        if seats[0] != 1:            for j in seats:                if j != 1:                    cnt +=1                else:                    break        max_lens = max(max_lens,cnt)                cnt = 0        if seats[-1] != 1:            for j in seats[::-1]:                if j != 1:                    cnt +=1                else:                    break        max_lens = max(max_lens,cnt)        return max_lens

转载地址:http://embqi.baihongyu.com/

你可能感兴趣的文章
面试必问的16个经典问题的回答思路
查看>>
丹阳买眼镜攻略1
查看>>
ubuntu安装与删除软件的命令
查看>>
单片机指令大全(精简)
查看>>
MCS-51单片机的指令时序
查看>>
51单片机总线时序
查看>>
USB学习
查看>>
C语言的lex和yacc工具说明
查看>>
C语言编译全过程
查看>>
数字集成资料
查看>>
使用U盘安装Ubuntu 9.10
查看>>
SmartARM2200启动文件分析
查看>>
关于ARM的三种中断调试方法介绍
查看>>
armlink使用方法详解
查看>>
armlink - Scatter file文件格式
查看>>
链接脚本文件是什么,怎样编写
查看>>
RO,RW和ZI的理解
查看>>
关于ARM汇编中字符串表达式及运算符总结
查看>>
试用ubuntu9.10体会 + grub2 +双linux系统
查看>>
ubuntu中建立交叉编译环境和skyeye
查看>>