华为OD机考--阿里巴巴黄金箱

题目内容

贫如洗的樵夫阿里巴巴在去砍柴的路上,无意中发现了强盗集团的藏宝地,藏宝地有编号从0~N的箱子每个箱子上面贴有一个数字箱子中可能有一个黄金宝箱。

黄金宝箱满足排在它之前的所有箱子数字和等于排在它之后的所有箱子数字之和;

一个箱子左边部分的数字和定义为0: 最后一个箱子右边部分的数字和定义为0.

帮阿里巴巴找到黄金宝箱,输出第一个满足条件的黄金宝箱编号,如果不存在黄金宝箱,请返回-1。

输入描述

箱子上贴的数字列表,使用逗号分隔,例如1,-1,0

宝箱的数量不小于1个,不超过10000 宝箱上贴的数值范围不低于-1000,不超过1000

输出描述

第一个黄金宝箱的编号

样例

输入

复制代码
2,5,-1,8,6

输出

复制代码
3

说明

下标3之前的数字和为:2+5+-1=6

下标3之后的数字和为:6=6

输入

复制代码
8,9

输出

复制代码
-1

说明

不存在符合要求的位置

输入

复制代码
11

输出

复制代码
0

说明

下标0之前的数字和为:0

下标0之后的数字和为:0

java 复制代码
public class GoldChest {
    public static void main(String[] args) {
        Scanner sc =  new Scanner(System.in);
        int [] num = Arrays.stream(sc.nextLine().split(",")).mapToInt(Integer::parseInt).toArray();
        if (num.length == 1){
            System.out.println(0);
            return;
        }
        int end = equal(num,1);
        System.out.println(end);
    }

    //单指针+循环遍历
    public static int equal(int [] num, int i){
        Boolean end = false;
        while (!end && i < num.length) {
            int before = 0;
            int after = 0;
            for (int j = 0; j < num.length; j++) {
                if (j < i) {
                    before += num[j];
                } else if (j > i) {
                    after += num[j];
                }
            }
            if (before == after) {
                end = true;
            } else {
                i++;
            }
        }
        if (!end) {
            return -1;
        }
        return i;
    }
}
相关推荐
下地种菜小叶几秒前
接口幂等怎么设计?一次讲清重复提交、支付回调、幂等键与防重落地方案
java·spring boot·spring·kafka·maven
codebrick1 分钟前
408 数据结构:快排 / 堆排 / 归并 / 希尔 等排序算法对比(复杂度、稳定性、真题考点
数据结构·考研·算法·排序算法·408
脱氧核糖核酸__1 分钟前
LeetCode热题100——240.搜索二维矩阵 II(题目+题解+答案)
c++·算法·leetcode·矩阵
YDS8291 分钟前
大营销平台 —— 模板方法串联前中置抽奖规则
java·spring boot·ddd
.柒宇.2 分钟前
Java八股之== 与 equals 区别
java·开发语言
时间静止不是简史2 分钟前
当MyBatis-Plus的like遇上SQL通配符:下划线翻车记
java·sql·mybatis
两年半的个人练习生^_^6 分钟前
每日一学:设计模式之建造者模式
java·开发语言·设计模式
纤纡.6 分钟前
基于 TextRNN 的微博情绪分类系统实现与解析
人工智能·算法·分类·数据挖掘
hehelm6 分钟前
string的模拟实现
数据结构·算法
我登哥MVP7 分钟前
【SpringMVC笔记】 - 6 - RESTFul编程风格
java·spring boot·spring·servlet·tomcat·maven·restful