LeetCode之二分查找
介绍:给定一个 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
提示:
提示:- 你可以假设 nums 中的所有元素是不重复的。- n 将在 [1, 10000]之间。- nums 的每个元素都将在 [-9999, 9999]之间。
解题思路:典型的二分查找,就是一前一后两个指针,更新法则为判断target和middle值之间的关系,从而更新begin和end。
源代码:
#include <iostream>
#include<vector>using namespace std;int search(vector<int>& nums, int target)
{int left = 0;int right = nums.size() - 1;int middle = 0;while (left <= right){if (nums[left] == target){return left;}if (nums[right] == target){return right;}middle = left + right / 2;if (nums[middle] == target){return middle;}if (nums[middle] > target){right = middle;left++;}if (nums[middle] < target){left = middle;right--;}}return -1;
}int main()
{vector<int> nums = { -1, 0, 3, 5, 9, 12 };int target = 9;int result = search(nums,target);cout << result << endl;system("pause");return 0;
}
LeetCode之二分查找相关推荐
- [算法]LeetCode 专题 -- 二分查找专题 34. 在排序数组中查找元素的第一个和最后一个位置
LeetCode 专题 – 二分查找专题 34. 在排序数组中查找元素的第一个和最后一个位置 难度:中等 题目描述 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值 ...
- [LeetCode]704.二分查找及相关题目
数组理论基础 数组理论 数组是存放在连续内存空间上的相同类型数据的集合 数组可以方便的通过下标索引的方式获取到下标下对应的数据 二维数组在内存的空间地址是连续的 二分查找 LeetCode 704.二 ...
- LeetCode Hot100 ---- 二分查找专题
什么是二分查找 二分查找是计算机科学中最基本.最有用的算法之一. 它描述了在有序集合中搜索特定值的过程. 二分查找中使用的术语: 目标 Target -- 你要查找的值 索引 Index -- 你要查 ...
- LeetCode的二分查找的练习部分总结
这两天由于工作的原因,一直没有写博客,但是却把LeetCode上面的题目做了不少--二分查找.上面这些题都是这两天写的.现在简单做一个总结. 首先二分查找的思想就是对一个有规律的元素(事情)进行不断的 ...
- Leetcode 704.二分查找
传送门:力扣二分查找 #define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> #include<vector> #includ ...
- Leetcode题解 二分查找
原理 1. 正常实现 public int binarySearch(int[] nums, int key) {int l = 0, h = nums.length - 1;while (l < ...
- Leetcode 704.二分查找 27.移除元素 代码随想录day1
本系列目的在于跟练代码随想录,以及记录自己在数据结构与算法方面的一些学习 704.二分查找 其实之前自己在随便刷题的时候看过这道题目,就是一个纯新手的大状态,第一次听到二分查找这样的东西,然后跟着题解 ...
- [刷题]leetcode\704_二分查找
二分查找前提:有序数组,无重复元素(若重复返回不唯一) class Solution:def search(self, nums: List[int], target: int) -> int: ...
- leetCode C++ 二分查找 35. 搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
一.C++ int binarySearch(vector<int>& nums, int &target, int left, int right) {int mid = ...
- LeetCode面试刷题技巧-二分查找算法(下):通过 LeetCode 学习二分查找算法-销售价值减少的颜色球
前言 以下是我为大家准备的几个精品专栏,喜欢的小伙伴可自行订阅,你的支持就是我不断更新的动力哟! MATLAB-30天带你从入门到精通 MATLAB深入理解高级教程(附源码) tableau可视化数据 ...
最新文章
- 领歌leangoo敏捷工具个人工作台功能
- WINDOWS SERVER 2003 AD中的5种操作主机
- EF Code First 学习笔记:关系
- Spring框架中的单例Bean是线程安全的吗
- nodejs express use 传值_再也不怕面试官问你express和koa的区别了
- windows curl ssl版本号编译
- java 解密pdf文件_Java 加密和解密PDF文档
- 海康、大华摄像头chrome高版本实时播放(java集成)
- 虚拟基础架构管理——直接通过 VMware vCenter 管理 NetApp 存储操作
- Word 里文字对齐推荐这4种方法
- 程序人生丨25岁毕业,月薪1万
- mysql统计一年中每周的数据,week(时间)和week(时间,1)不同
- 账号管理html,个人账号管理.html
- 平面、3D设计软件最全集子(Windows系32、64位)
- 明星热图|高圆圆、颖儿、杨蓉等演绎服饰新品;张雨绮、刘嘉玲代言新品牌;李佳琦入选《时代》全球下一代百位影响力人物榜...
- 《摩诃般若波罗蜜多心经》 玄奘 译
- 语音平台三方会战,亚马逊谷歌苹果谁领风骚?
- android 语音识别_Android语音识别教程
- 通讯录管理系统—优化版 (C语言 期末大作业 课程设计)
- linux怎么安装.pl文件,浅谈如何解决perl Makefile.PL、make install 安装报错问题
热门文章
- RunTime之类与对象
- # 学号20155308 2006-2007-2 《Java程序设计》第4周学习总结
- Decorator 装饰(结构型)
- 关于System.identityHashCode(obj) 与 obj.hashcode()
- 使用getopt_long解析程序长选项参数
- EnterpriseLibrary2.0的学习-DAAB
- 服务提供者框架讲解 之 myJDBC
- winform 文件上传限制文件类型及文件大小
- 46. 考虑使用函数对象而不是函数作为STL算法的参数
- Redis 彻底禁用RDB持久化