目录
题目
思路
Code
题目
在一个大型体育场内举办了一场大型活动,由于疫情防控的需要,要求每位观众的必须间隔至少一个空位才允许落座。现在给出一排观众座位分布图,座位中存在已落座的观众,请计算出,在不移动现有观众座位的情况下,最多还能坐下多少名观众。
输入描述
一个数组,用来标识某一排座位中,每个座位是否已经坐人。0表示该座位没有坐人,1表示该座位已经坐人。
输出描述
整数,在不移动现有观众座位的情况下,最多还能坐下多少名观众。
示例1输入输出示例仅供调试,后台判题数据一般不包含示例
输入
10001
输出
1
示例2
输入输出示例仅供调试,后台判题数据一般不包含示例
输入
0101
输出
0
备注
1<=数组长度<=10000
思路
1:之前的B卷的原题,只是题目描述变化了。华为od统一考试B卷【座位调整】Python 实现-CSDN博客
2:如果 当前位置 x为0,则说明当前位置是一个空位,此时只需要检查当前位置的左右两边也是空位,则说明当前位置可以坐人,将当前位置更新为1即可。判断左右是否为空位则需要考虑边界的问题,具体可见代码逻辑。
编辑
Code
# coding:utf-8
#JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。
import functools
import sys
from collections import Counter, defaultdict
import copy
from itertools import permutations
import re
import math
import sys
from queue import Queue
count = 0
def solve(nums, n):
global count
j =0
while(j<n):
if (nums[j] != 0) :
j+=1
continue
else :
if (j == 0 or nums[j-1] == 0) :
if (j==n-1 or nums[j+1]==0) :
count+=1
nums[j]=1
j+=1
j+=1
【华为od机试真题Python+JS+Java合集】【超值优惠】:Py/JS/Java合集
【华为od机试真题Python】:Python真题题库
【华为od机试真题JavaScript】:JavaScript真题题库
【华为od机试真题Java】:Java真题题库
【华为od机试真题C++】:C++真题题库
【华为od机试真题C语言】:C语言真题题库
【华为od面试手撕代码题库】:面试手撕代码题库
【华为od机试面试交流群:830285880】