华为OD真题--荒岛求生--带答案

  1. 华为OD机考题 + 答案

2023华为OD统一考试(A+B卷)题库清单-带答案(持续更新)

2023年华为OD真题机考题库大全-带答案(持续更新)

  1. 面试题

一手真实java面试题:2023年各大公司java面试真题汇总--持续更新

  1. 技术知识

java后端技术汇总 + 中间件 + 架构思想

有一个荒岛,只有左右两个港口,只有一座桥连接这两个港口,现在有一群人需要从两个港口逃生,有的人往右逃生,有的往左逃生,如果两个人相遇,则PK,体力值大的能够打赢体力值小的,体力值相同则同归干尽,赢的人才能继续往前逃生,并减少相应的体力

输入描述

一行非 0 整数,用空格隔开,正数代表向右逃生,负数代表向左逃生

输出描述

最终能够逃生的人数

示例1:

输入

5 10 8 -8 -5

输出

2

说明

8与-8 相遇,同归于尽,10 遇到-5,打赢并减少五点体力,最终逃生的为5,5,均从右侧港口逃生,输出2

复制代码
public class IslandSurvival {
    //5 10 8 -8 -5
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        List<Integer> power = Arrays.stream(sc.nextLine().split(" ")).map(Integer::parseInt).collect(Collectors.toList());
        List<Integer> right = new ArrayList<>();
        List<Integer> left = new ArrayList<>();

        //先将左右方向的人区分
        for (int i = 0; i < power.size(); i++){
            if (power.get(i) > 0){
                right.add(power.get(i));
            }else {
                left.add(power.get(i));
            }
        }
        int exit = fight(left,right);
        System.out.println(exit);
    }

    public static int fight(List<Integer> l,List<Integer> r){
        int exit = 0;
        //用个左右双指针
        int left = 0;
        int right = r.size() - 1;

        while (left < l.size() && right >= 0){
            //体力绝对值不相等,就会有一方能逃离
            //最最左边的跟左右边的人比
            if (Math.abs(l.get(left)) != Math.abs(r.get(right))){
                exit++;
            }
            left++;
            right--;
        }
        //左右方向的有剩余的没有参与战斗的人员
        exit +=  (l.size() -1)-(left - 1);
        exit +=  (right + 1);
        return exit;
    }

}
相关推荐
专业程序开发源7 小时前
springboot社区养老系统44071-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·php·课程设计
小呆呆6667 小时前
副业搞起来,小说,漫画,漫剧的成本优化思路
前端·后端·面试
周杰伦fans8 小时前
8GB显存下模型量化实战指南
人工智能·后端·c#
HEJOO98 小时前
指针的算术运算详解
java·数据结构·算法
sunshine22 girl8 小时前
Java学习六 Java常见API-2--String-3-字符串的截取替换和其他方法
java·开发语言·学习
EatFan8 小时前
从“框架混战“到“运行时收敛“:2026 年 AI Agent 开发框架的三条路线之争
java·数据库·人工智能·多智能体·ai agent·mcp·agent 框架
小蒜学长8 小时前
基于SpringBoot的佳新超市管理系统设计与实现系统(代码+数据库+LW)
java·数据库·spring boot·后端·佳新超市管理系统
sunshine22 girl9 小时前
Java学习六 Java常见API-1-Radom随机数
java·开发语言·学习
IT_陈寒9 小时前
Vite静态资源导入这个坑我帮你们踩过了
前端·人工智能·后端
wangbing11259 小时前
使用jps jstack排查系统问题
java