首页 > 其他分享 >整数二分查找 leetcode35. 搜索插入位置 leetcode704. 二分查找

整数二分查找 leetcode35. 搜索插入位置 leetcode704. 二分查找

时间:2024-11-14 15:59:22浏览次数:1  
标签:二分 target nums int leetcode704 mid 查找 size

这两道题的本质是一样的,都是整数二分查找。题目给出的条件比较强,序列是严格单调递增的。

但是我这个即使序列存在重复的元素也可以满足需求

35. 搜索插入位置

class Solution {
public:
    int searchInsert(vector<int>& nums, int target) {
        int size = nums.size();
        int i = 0,j = size - 1;
        int mid = (i+j)/2;
        while(i <= j){
            if(target > nums[mid])    i = mid + 1;           
            else    j = mid - 1;           
            mid = (i+j)/2;
        }
        return i;
    }
};
//i <= j
//if(target > nums[mid])    i = mid + 1; 
//return i
//记住这三个最重要的点,可以免得次次使用二分都得调试

 

704. 二分查找

class Solution {
public:
    int search(vector<int>& nums, int target) {
        int size = nums.size();
        int i = 0,j = size - 1;
        int mid = (i+j)/2;
        while(i <= j){
            if(target > nums[mid])  i = mid + 1;         
            else    j = mid - 1;         
            mid = (i+j)/2;
        }
        if(i == size || nums[i] != target)  return -1;  //i 不会在左边越界。
        //如果 i 在右边越界了,或者结束时不是要找的target,那么target就不存在
        return i;
    }
};

 

标签:二分,target,nums,int,leetcode704,mid,查找,size
From: https://www.cnblogs.com/uacs2024/p/18546205

相关文章

  • 代码随想录:二分查找
    代码随想录:二分查找二分法标志:数组顺序排列且无重复简单的二分法,写法是左闭右闭的写法,此种情况的left可以等于right,故while里有等号。classSolution{public:intsearch(vector<int>&nums,inttarget){intleft=0;intright=nums.size()-1;......
  • 二分查找(折半查找)函数与非函数写法代码介绍及其优缺点 C语言
    什么是二分查找?二分查找也叫折半查找 在有序的数组中查找目标的方法需要借助中间元素与目标值的比较来逐步缩小范围一直到找到目标元素或者不存在为止查找的步骤↓1确定左右端点的下标值(注:数组下标从0开始)2计算中间下标位置3比较中间下标位置的数组值与目标值的大......
  • 数列分段(二分)
    [数列分段SectionII]题目描述对于给定的一个长度为\(N\)的正整数数列\(A_{1\simN}\),现要将其分成\(M\)(\(M\leqN\))段,并要求每段连续,且每段和的最大值最小。关于最大值最小:例如一数列\(4\2\4\5\1\)要分成\(3\)段。将其如下分段:\[[4\2][4\5][1]\]第一段和为......
  • 整数二分—建造水族馆
    建造水族馆每次测试时限:2秒每次测试的内存限制:256兆字节输入:标准输入输出:标准输出题目:你喜欢养鱼,所以你决定建造一个水族馆。你有一块由n根柱子组成的珊瑚,其中i根柱子高ai个单位。之后,你将在珊瑚周围建造一个水族箱,具体如下:选取一个整数h>=1--水箱的高度。在水箱两侧建......
  • 二叉搜索树实现教程:用C++实现数据存储与查找
    文章目录1.二叉搜索树的概念2.二叉搜索树的性能分析3.二叉搜索树的插入4.二叉搜索树的查找5.二叉搜索树的删除6.⼆叉搜索树的实现代码7.⼆叉搜索树key和key/value使⽤场景7.1key搜索场景:7.2key/value搜索场景:7.3key/value⼆叉搜索树代码实现1.二叉搜索树......
  • 整数二分
    洛谷p1873砍树题目描述:伐木工人Mirko需要砍M米长的木材。对Mirko来说这是很简单的工作,因为他有一个漂亮的新伐木机,可以如野火一般砍伐森林。不过,Mirko只被允许砍伐一排树。Mirko的伐木机工作流程如下:Mirko设置一个高度参数H(米),伐木机升起一个巨大的锯片到高度H,并锯掉......
  • 【算法】【优选算法】二分查找算法(上)
    目录一、二分查找简介1.1朴素二分模板1.2查找区间左端点模版1.3查找区间右端点模版二、leetcode704.⼆分查找2.1二分查找2.2暴力枚举三、Leetcode34.在排序数组中查找元素的第⼀个和最后⼀个位置3.1二分查找3.2暴力枚举四、35.搜索插⼊位置4.1二分查找4.2......
  • 二分法查找
    二分查找/*折半查找,二分查找*///已经排好序的数组中进行查询#include<stdio.h>intmain(){ intlow,high,mid,userInput;//highlowmid记录的是数组下标 intflag=0;//记录能否找到 inta[10]={12,14,21,35,48,57,69,78,89,99};//二分查找的前提:已经有序 low=0......
  • apropos——在 whatis 数据库中查找字符串
    转自于:https://github.com/jaywcjlove/linux-command,后不赘述apropos在whatis数据库中查找字符串补充说明apropos命令在一些特定的包含系统命令的简短描述的数据库文件里查找关键字,然后把结果送到标准输出。如果你不知道完成某个特定任务所需要命令的名称,可以使用一个关......
  • excel中查找亏损第一大第二大第三大的商品的亏损金额;涨出第一大,第二大,第三大的金额;以
     k2里的公式 =LARGE(IF(B:B="品类1",E:E),1)lL里的公式 =LARGE(IF(B:B="品类1",E:E),2)M2里额公式 =LARGE(IF(B:B="品类1",E:E),3)N2里的公式=MIN(IF(B:B="品类1",E:E),1)O2里的公式=SMALL(IF(B:B="品类1",E:E),2)P2里的公式 =SMALL(IF(B:B="品类1&......