目录

题目

思路

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】