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

示例 1:

输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4

示例 2:

输入: nums = [-1,0,3,5,9,12], target = 2
输出: -1
解释: 2 不存在 nums 中因此返回 -1




/*
算法思想:
根据查找的目标不同,二分查找法主要分为好几类。
第一类,需查找和目标值完全相等的数。即本题,这是最简单的一类,也是我们最开始学二分查找法需要解决的问题。
*/
//算法实现: class Solution {
public:
int search(vector<int>& nums, int target) {
int left = 0, right = nums.size() - 1,mid = 0;
while (left <= right) {
mid = (right + left) / 2; //取中间位置
if (nums[mid] == target) //查找成功则返回所在位置
return mid;
else if (nums[mid] > target) //从前半部分继续查找
right = mid - 1;
else //从后半部分继续查找
left = mid + 1;
}
return -1;
}
};

LeetCode704 二分查找的更多相关文章

  1. 【算法训练营day1】LeetCode704. 二分查找 LeetCode27. 移除元素

    [算法训练营day1]LeetCode704. 二分查找 LeetCode27. 移除元素 LeetCode704. 二分查找 题目链接:704. 二分查找 初次尝试 看到题目标题是二分查找,所以尝试 ...

  2. leetcode704二分查找

    title: 二分查找 题目描述 题目链接:二分查找 解题思路 二分模板默写 int search(vector<int>& nums, int target) { int lef ...

  3. [Swift]LeetCode704. 二分查找 | Binary Search

    Given a sorted (in ascending order) integer array nums of nelements and a target value, write a func ...

  4. LeetCode 704. 二分查找(Binary Search)

    704. 二分查找 704. Binary Search 题目描述 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target,写一个函数搜索 nums 中的 target,如果 ...

  5. jvascript 顺序查找和二分查找法

    第一种:顺序查找法 中心思想:和数组中的值逐个比对! /* * 参数说明: * array:传入数组 * findVal:传入需要查找的数 */ function Orderseach(array,f ...

  6. Java实现的二分查找算法

    二分查找又称折半查找,它是一种效率较高的查找方法. 折半查找的算法思想是将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小 于该中点 ...

  7. 从一个NOI题目再学习二分查找。

    二分法的基本思路是对一个有序序列(递增递减都可以)查找时,测试一个中间下标处的值,若值比期待值小,则在更大的一侧进行查找(反之亦然),查找时再次二分.这比顺序访问要少很多访问量,效率很高. 设:low ...

  8. java实现二分查找

    /** * 二分查找 * @param a * @param n * @param value * @return * @date 2016-10-8 * @author shaobn */ publ ...

  9. 最新IP地址数据库 二分逼近&二分查找 高效解析800万大数据之区域分布

    最新IP地址数据库  来自 qqzeng.com 利用二分逼近法(bisection method) ,每秒300多万, 比较高效! 原来的顺序查找算法 效率比较低 readonly string i ...

随机推荐

  1. day106:MoFang:BUG:获取数据验证token是否过期&相册/相机取消头像无法显示&MongoDB

    目录 BUG1:前端在获取数据时,要检验token是否过期 BUG2:相册/相机取消后设置页面头像无法显示 MongoDB 1.MongoDB基本介绍 2.MongoDB安装 3.MongoDB:通用 ...

  2. Redis存储对象(序列化和反序列化)

    代码以及实例: package com.hp.test; import redis.clients.jedis.Jedis; import java.io.*; public class Test3 ...

  3. MySQL 5.7.29安装配置

    一.环境准备(关闭防火墙) 1.清除已安装数据库 [root@mysql01 ~]# rpm -qa | grep mariadb mariadb-libs-5.5.35-3.el7.x86_64 [ ...

  4. CD租赁售卖系统javaweb系统展示SSM框架

    一.功能要点 1.管理员登录 2.用户注册登录 3.用户权限,可以查看可借或可买cd,并实现对cd的买租 4.管理员可以添加cd, 5.cd的类型,价格由管理员设置 二.运行环境 数据库mysql: ...

  5. js处理浏览器兼容

    1.try  catch 在try中执行我们的代码,如果在执行的过程中发生了异常信息,我们在catch中写代替的执行方案 前提:不兼容四位情况下,执行对应的代码,需要发生异常错误才可以检测到 弊端:不 ...

  6. js上 六、运算符-2

    6.1.关系运算符 用来进行比较的.比较的结果通常是布尔值真和假. ü ==:相等,只比较值是否相等 ü ===:全等,比较值的同时比较数据类型是否相等 ü !=:不相等,比较值是否不相等 ü !== ...

  7. Linux vmstat 使用说明

    摘自 https://www.thomas-krenn.com/en/wiki/Linux_Performance_Measurements_using_vmstat Linux Performanc ...

  8. Selenium多浏览器测试

    在浏览器的兼容性测试中,会测试产品在不同浏览器上的兼容性,比较主流的浏览器有IE.Firefox.Chrome,Opera,Safari等.还有其它如360.QQ.遨游.百度等浏览器都是基于IE或者c ...

  9. Echarts数据可视化,easyshu图表集成。

      介绍: ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Sa ...

  10. 分布式零基础之--分布式CAP理论

    研究到分布式系统CAP理论,记录下来下回详细分析它: CAP是指三个单词的简称 C: 一致性(Consistence) 所有节点访问的都是同一份最新的数据副本. A: 可用性(Availability ...