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

news/2024/7/20 19:21:49 标签: 华为od, 后端, java

1. 华为OD机考题 + 答案

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

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

2. 面试题

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

3. 技术知识

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;
    }

}


http://www.niftyadmin.cn/n/4971109.html

相关文章

14-模型 - 增删改查

增: # 1. 找到模型类并创建对象 user User() # 2. 给对象的属性赋值 user.username username user.password password user.phone phone # 3. 将user对象添加到session中 (类似缓存) db.session.add(user) # 4. 提交数据 db.session.commit() 删: # 两种删除:# 1. 逻辑删…

第四方支付平台和聚合支付有什么区别?

第四方支付平台和聚合支付有什么区别&#xff1f; 聚合支付和第四方支付平台是移动支付领域的两种常见支付方式。它们在实际应用中有许多相似之处&#xff0c;给人们的生活带来了便利。然而&#xff0c;这两种支付方式也有本质的区别。我将从不同的角度对它们进行比较和分析。 …

玩转git第7章节,本地git的用户名和密码的修改

一 本地git的用户名和密码 1.1 本地用户名和密码修改 1.本地用户名修改 2.凭据管理 3.进行修改密码 1.2 代码提交操作

基于Android的垃圾分类系统 微信小程序 uniapp

随着网络科技的发展&#xff0c;移动智能终端逐渐走进人们的视线&#xff0c;相关应用越来越广泛&#xff0c;并在人们的日常生活中扮演着越来越重要的角色。因此&#xff0c;关键应用程序的开发成为影响移动智能终端普及的重要因素&#xff0c;设计并开发实用、方便的应用程序…

Python执行PostgreSQL数据库的SQL脚本

Python执行PostgreSQL数据库的SQL脚本 一、使用psycopg2插件psycopg2插件简介1.1、Python更新pip插件1.2、Python安装psycopg2插件1.3、信任该安装源1.4、Python安装chardet插件1.5、查看已安装的插件pip list1.6、创建Python文件&#xff1a;PostgreSQLExecuteSql.py1.7、创建…

YOLOv5算法改进(7)— 添加SimAM注意力机制

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。SimAM&#xff08;Similarity-based Attention Mechanism&#xff09;是一种基于相似度的注意力机制&#xff0c;它的原理是通过计算查询向量与每个键向量之间的相似度&#xff0c;从而确定每个键向量对于查询向量的重要性…

SemrushBot蜘蛛爬虫屏蔽方式

查看访问日志时候发现有SemrushBot爬虫 屏蔽方法&#xff1a; 使用robots.txt文件是一种标准的协议,用于告诉搜索引擎哪些页面可以和不能被爬取,如想禁止Googlebot爬取整个网站的话,可以在该文件中添加以下内容: User-agent: Googlebot Disallow: / 对于遵循robots协议的蜘蛛…

【翻译】RISC-V指令集手册第Ⅱ卷:特权体系结构

第三章 机器级ISA&#xff0c;版本1.11 本章描述RISC-V系统中最高权限的机器模式(M-mode)下的机器级操作。M模式用于对硬件平台的低级访问&#xff0c;是复位时进入的第一个模式。M模式还可以用于实现在硬件中直接实现过于困难或代价过高的特性。RISC-V机器级ISA包含一个公共核…