牛客hot100--BM17---二分查找I(简单难度)

简介: 牛客hot100--BM17---二分查找I(简单难度)

目录

题目概述(简单难度)

题目链接:

点我进入牛客

思路与代码

思路展现

没啥好说的,经典二分查找法

代码示例

import java.util.*;
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型一维数组 
     * @param target int整型 
     * @return int整型
     */
    public int search (int[] nums, int target) {
        if(nums == null) {
            return -1;
        }
        int i = 0;
        int j = nums.length - 1;
        while(i <= j) {
            int mid = (i + j) / 2;
            if(nums[mid] < target) {
                i = mid + 1;
            }else if(nums[mid] > target){
                j = mid - 1;
            }else {
                return mid;
            }
        }
        return -1;
    }
}

时间复杂度: O(logn), 每次区间收敛一半

空间复杂度: O(1). 常数个变量

注意事项

这道题目注意在while循环的时候一定要加等于号,如果不加的话会有如下测试用例跑不过去:

以下代码错误:

while(i < j)
相关文章
|
9月前
|
Ubuntu 安全 Linux
Linux错误排查:解决Ubuntu 20.4执行sudo apt-get update时出现的libnettle.so.6错误。
很有可能在你得到解决方案时,你也学到了不少Linux修复技巧。祝你处理计算机问题时顺利如麻!永远记得,各种问题总是像老鼠一样从意想不到的地方冒出来。但记住,不管它们跑到哪里,最终都逃不过你的捕鼠器。盖起你的计算机,拾起你的代码,大步向前!
250 18
|
jenkins Devops Java
【DevOps】(一)jekins部署
【DevOps】(一)jekins部署
226 1
|
监控 Java 数据库连接
详解Spring Batch:在Spring Boot中实现高效批处理
详解Spring Batch:在Spring Boot中实现高效批处理
2403 12
|
Java 测试技术 API
拼多多 API 接口申请通过后如何进行测试?
拼多多 API 接口申请通过后,需按以下步骤测试:1. 仔细研读接口文档;2. 搭建测试环境,准备开发工具和模拟请求工具;3. 编写测试代码或使用测试工具;4. 设计测试用例,包括正常、异常和边界情况;5. 验证测试结果,检查返回值和错误处理;6. 记录和分析测试结果,确保 API 的稳定性和性能。
|
数据可视化 大数据 Linux
OpenEuler虚拟机安装保姆级教程 | 附可视化界面
本文介绍了如何在VMware中安装openEuler操作系统,从选择合适的镜像版本下载开始,到创建虚拟机、配置CPU虚拟化、进行系统安装、设置网络连接,直至安装DDE桌面环境实现图形化操作。openEuler是一款由华为开源的操作系统,支持多种处理器架构,广泛应用于数据库、大数据、云计算等领域。文中还分享了安装过程中的注意事项及解决网络问题的方法,适合初次接触openEuler的用户参考学习。
5026 4
OpenEuler虚拟机安装保姆级教程 | 附可视化界面
|
监控 数据可视化 项目管理
WBS任务分解拆解:项目管理中的效率秘诀探讨
WBS(Work Breakdown Structure)是项目管理中将大型复杂项目分解为可管理的小任务的方法。它帮助清晰定义项目目标,确保100%覆盖所有工作,并遵循任务独立性及适当工作包大小原则。WBS通过简化项目、明确责任人、制定工作清单、估算时间和分配资源,促进项目跟踪与控制。使用工具如Zoho Projects,可按阶段创建任务,细化子任务,设定依赖关系,分配资源,以及设置提醒和里程碑,从而有效管理项目执行。
1565 1
|
存储 SQL Rust
[译] Python各版本的主要更改
[译] Python各版本的主要更改
277 1
|
SQL 关系型数据库 MySQL
实时计算 Flink版操作报错合集之报错:org.apache.flink.table.api.validationexception如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
1302 1
|
算法 API C++
模型落地系列 | TensorRT应该如何添加自己的插件?
模型落地系列 | TensorRT应该如何添加自己的插件?
974 1
|
SQL 缓存 关系型数据库
【Mycat】mycat综述(附安装配置)
【Mycat】mycat综述(附安装配置)
988 0