58同城深圳招聘网站,wordpress支付系统开发,个人主页设计图,erp软件免费版下载一、题目描述
特定大小的停车场#xff0c;数组cars[]表示#xff0c;其中1表示有车#xff0c;0表示没车。
车辆大小不一#xff0c;小车占一个车位#xff08;长度1#xff09;#xff0c;货车占两个车位#xff08;长度2#xff09;#xff0c;卡车占三个车位数组cars[]表示其中1表示有车0表示没车。
车辆大小不一小车占一个车位长度1货车占两个车位长度2卡车占三个车位长度3。
统计停车场最少可以停多少辆车返回具体的数目。
二、输入描述
整型字符串数组cars[]其中1表示有车0表示没车数组长度小于1000。
输入0,0,1,0,1,1,1,0,0,1,1,0。
输入说明
小车占一个车位长度1货车占两个车位长度2卡车占三个车位长度3。
1表示1个小车两个连续的1表示货车三个连续的1表示卡车。
三、输出描述
整型数字字符串表示最少停车数目。
四、解题思路
读取输入的停车场信息存储在字符串数组 cars[] 中初始化变量 total 和 tem 为0用于记录停车总数和连续有车的长度遍历停车场数组 cars[]根据当前位置的值进行如下操作 如果当前位置为1表示有车将 tem 值加1如果当前位置为0表示没车且 tem 不为0表示之前有连续的车辆根据 tem 的值计算可停放的最少车辆数并累加到 total 中然后将 tem 重置为0。 如果遍历结束后 tem 不为0表示最后一辆车辆后面没有0了需要将 tem 的值计算可停放的最少车辆数并累加到 total 中输出最少停车数目 total。
五、Java算法源码
public static void main(String[] args) {Scanner sc new Scanner(System.in);String[] split sc.nextLine().split(,);int total 0;int tem 0;for (String s : split) {if (Integer.parseInt(s) 1) {tem;} else {if (tem ! 0) {total calcMin(tem);}tem 0;}}total calcMin(tem);System.out.println(total);}private static int calcMin(int num) {int total 0;while (num 3) {num - 3;total;}while (num 2) {num - 2;total;}total num;return total;}六、效果展示 本文收录于华为OD机试2023Java
本专栏包含了最新最全的2023年华为OD机试真题有详细的分析和Java解答。已帮助1000同学顺利通过OD机考。专栏会持续更新每天在线答疑。