当前位置: 首页 > news >正文

华为OD-D卷小明找位置

题目:小朋友出操,按学号从小到大排成一列;小明来迟了,请你给小明出个主意,让他尽快找到他应该排的位置。

算法复杂度要求不高于nLog(n);学号为整数类型,队列规模<=10000;

输入描述:

1、第一行:输入已排成队列的小朋友的学号(正整数),以”,”隔开;
       例如:93 95 97 100 102 123 155
2、第二行:小明学号,如110;

输出描述:

输出一个数字,代表队列位置(从1开始)。

例如:6

题目解析:

本题本质上还是对二分查找,只不过已知要找的数不在队列当中而已:

需要注意:队列位置(从1开始)

import java.util.Scanner;public class Main {public static void main(String[] args) {
//        int[] nums = new int[]{93, 95, 97, 100, 102, 123, 155};
//        int target = 110;// 处理数据Scanner scanner = new Scanner(System.in);String string = scanner.nextLine();String[] numsStr = string.split(",");int[] nums = new int[numsStr.length];for (int i = 0; i < nums.length; i++) {nums[i] = Integer.parseInt(numsStr[i]);}int target = scanner.nextInt();// 二分查找int left = 0;int right = nums.length - 1;int mid;// 注意等号,避免漏掉查找的数while (left <= right) {// 代替 (right+left) / 2 ,可以避免 right+left 超过 int 范围,一般情况下不用考虑mid = left + (right - left) / 2;if (target == nums[mid]) {System.out.println(mid + 1);return;} else if (target < nums[mid]) {right = mid - 1;} else {left = mid + 1;}}// 需要注意队列位置从1开始System.out.println(left + 1);}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 学习记录(9):Prompt提示词技巧
  • source insight 3.5快捷键合集
  • 模板方法模式(Template Method Pattern)
  • 三数之和-Leetcode
  • 深入理解 Vuex:Vue.js 应用的状态管理
  • 《最新出炉》系列小成篇-Python+Playwright自动化测试-66 - 等待元素至指定状态(出现、移除、显示和隐藏)
  • mysql数据库:SQL语言基础和基本查询
  • 黑马Java零基础视频教程精华部分_16_递归算法
  • QT下载与安装
  • 第25课 Scratch入门篇:火箭升空
  • 2024下半年国际学术会议一览表
  • 学懂C++ (十四):高级教程——C++ 动态内存管理(new和delete)详解
  • Cmake基础教程--第1章:初识cmake
  • python实现返回指定下标位置的 斐波那契数列[1,1,2,3,5,8,13,21,34....n] 数值
  • 基于Springboot + Vue的宿舍管理系统
  • Android框架之Volley
  • Create React App 使用
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • iOS | NSProxy
  • Javascript基础之Array数组API
  • MySQL-事务管理(基础)
  • mysql外键的使用
  • Xmanager 远程桌面 CentOS 7
  • 从重复到重用
  • 对象引论
  • 开源SQL-on-Hadoop系统一览
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 前端性能优化--懒加载和预加载
  • 前端学习笔记之观察者模式
  • 使用 QuickBI 搭建酷炫可视化分析
  • 微信支付JSAPI,实测!终极方案
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • ‌移动管家手机智能控制汽车系统
  • "无招胜有招"nbsp;史上最全的互…
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • $refs 、$nextTic、动态组件、name的使用
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (13):Silverlight 2 数据与通信之WebRequest
  • (35)远程识别(又称无人机识别)(二)
  • (bean配置类的注解开发)学习Spring的第十三天
  • (C语言)球球大作战
  • (ZT)出版业改革:该死的死,该生的生
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • **《Linux/Unix系统编程手册》读书笔记24章**
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • ... 是什么 ?... 有什么用处?
  • .net 流——流的类型体系简单介绍
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .NET基础篇——反射的奥妙