一、题目描述
工位由序列F1,F2…Fn组成,Fi值为0、1或2。其中0代表空置,1代表有人,2代表障碍物。
1、某一空位的友好度为左右连续老员工数之和
2、为方便新员工学习求助,优先安排友好度高的空位
给出工位序列,求所有空位中友好度的最大值。
二、输入描述
第一行为工位序列:F1,F2…Fn组成,1<=n<=100000,Fi值为0、1或2。其中0代表空置,1代码有人,2代表障碍物
其中0代表空置,1代码有人,2代表障碍物。
三、输出描述
所有空位中友好度的最大值。如果没有空位,返回0。
四、解题思路
找到每个0出现的位置,然后分别向前后找连续出现的1,出现计数变量就加一,不是1就跳
五、Java算法源码
/**
* 找到每个0出现的位置,然后分别向前后找连续出现的1,出现计数变量就加一,不是1就跳
*/
public static void main
求工位友好度最大值的Java解题方案
文章提供了一道关于计算工位友好度的编程题,其中友好度定义为空位两侧连续老员工(值为1)的数量之和。给定工位序列,目标是找出所有空位中友好度的最大值。解题思路是遍历序列,找到每个0的位置,分别计算其左右连续的1的数量。提供的Java代码实现了这一算法,并给出了示例输入和输出,以及问题在华为OD机试中的相关背景。
订阅专栏 解锁全文
25万+

被折叠的 条评论
为什么被折叠?



