博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode每日一题: 二分查找(No.704)
阅读量:5742 次
发布时间:2019-06-18

本文共 815 字,大约阅读时间需要 2 分钟。

题目: 二分查找


给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值target,写一个函数搜索 nums 中的     target,如果目标值存在返回下标,否则返回 -1。复制代码

示例:


输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1复制代码

思考:


经典算法,循环求中间位置元素进行比较,target小于中间元素则再求左半边中间位置元素,大于则求右半边中间位置元素。复制代码

实现:


class Solution {    public int search(int[] nums, int target) {        int low = 0;        int high = nums.length - 1;        while (low <= high) {            int middle = low + (high - low) / 2;            if (target > nums[middle]) {                low = middle + 1;            } else if (target < nums[middle]) {                high = middle - 1;            } else {                return middle;            }        }        return -1;    }}复制代码

转载于:https://juejin.im/post/5cc503b4f265da03b36ef025

你可能感兴趣的文章
非旋转Treap
查看>>
IIS注册asp.net4.0
查看>>
呜呼!Node.js是什么?
查看>>
完整java开发中JDBC连接数据库代码和步骤 JDBC连接数据库
查看>>
CLR thread pool
查看>>
eclipse查看hadoop中文件出现乱码
查看>>
CentOS和Ubuntu下安装配置Greenplum数据库集群(包括安装包和源码编译安装)
查看>>
高级智能研究计划(IARPA):大脑皮层建模
查看>>
如何把返回的对象以及对应的数据保存到二维数组
查看>>
图像处理基础(7):图像的灰度变换
查看>>
Android学习笔记(27):日历视图Calendar
查看>>
hdu 1789 Doing Homework again 贪心
查看>>
Perl模块管理
查看>>
jsplumb 中文教程
查看>>
一起谈.NET技术,ASP.NET缓存初探 使用得当是关键
查看>>
一段c++代码小例子
查看>>
Matlab的XTickLabel中数值带下标
查看>>
Windows平台下利用APM来做负载均衡方案 - 负载均衡(下)
查看>>
由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面
查看>>
没有可用于当前位置的源代码 解决办法
查看>>