首页 > 其他分享 >2、数组问题最常见

2、数组问题最常见

时间:2023-04-27 21:27:00浏览次数:49  
标签:... arr return target int 常见 mid 问题 数组

1、二分查找法

二分查找法(Java 实现)

template<typename T>
int binarySearch1(T arr[], int n, T target) {
    // 在 [l ... r] 的范围里寻找 target
    int l = 0;
    int r = n - 1;
    int mid;

    // 当 l == r 时, 区间 [l ... r] 依然是有效的
    while (l <= r) {
        mid = l + (r - l) / 2;
        if (arr[mid] == target) return mid;
        if (arr[mid] < target) l = mid + 1;
        else r = mid - 1;
    }

    return -1;
}

template<typename T>
int binarySearch2(T arr[], int n, T target) {
    // 在 [l ... r) 的范围里寻找 target
    int l = 0;
    int r = n;
    int mid;

    // 当 l < r 时, 区间 [l ... r) 就是有效的
    while (l < r) {
        mid = l + (r - l) / 2;
        if (arr[mid] == target) return mid;
        if (arr[mid] < target) l = mid + 1;
        else r = mid;
    }

    return -1;
}

标签:...,arr,return,target,int,常见,mid,问题,数组
From: https://www.cnblogs.com/lidong422339/p/17360227.html

相关文章

  • css--常见左右盒子宽度高度自适应布局
    css--常见左右盒子宽度高度自适应布局 前言前端开发工程师最基础的技能要求是根据ui设计稿还原网页,这就缺少不了必要的网页布局,首先看下最近小伙伴问我的一个问题,他说一个网页有左右两个部分,左右两个部分的宽高度都不固定,要使得右部分的宽度充满剩余的部分,并且高度随......
  • 关于一些在EasyX图形库上的音乐播放问题
    首先需要包含两个头文件    ①#include<graphics.h>        ②#include<mmsystem.h>                    ③#pragmacomment(lib,"winmm.lib")     (因为使用的是windows的设备,就需要包含windows.h头文件,但是graphi......
  • 三色球问题
    1.问题描述  一个口袋中放有12个球,已知其中3个是红的,3个是白的,6个是黑的,现在从中任意取8个,问共有多少种可能的颜色搭配。    #include<iostream>usingnamespacestd;intmain(){ intm,n,ans=0; for(m=0;m<=3;m++) for(n=0;n<=3;n++) if(8-m......
  • 压缩数组
    443:双指针短除法:while(num>0){char[i]='0'+num%10;num/=10;}要与之后的字符串进行比较,因为之后的字符串才是没有被改动过。所以:chars[i]==cahrs[i+1]因为与之后的字符串比较,所以要从0开始。如果字符串出现不等,就将字符串记录入原字符串,再将哨兵后移;继续输入长度num如原......
  • 第十三天第二个问题
    问题描述:6-7【CPP0029】以圆类Circle及立体图形类Solid为基础设计圆锥类Cone分数 10全屏浏览题目切换布局作者 C++多态编程单位 石家庄铁道大学以点类Point及平面图形类Plane为基类公有派生圆类Circle,再以圆类Circle及立体图形类Solid为基类公......
  • JS 数组 group by 分组
    扩展数组方法Array.prototype.groupBy=functiongroupBy(key){  consthash={},    result=[];  for(constelofthis){    if(hash[el[key]]){      hash[el[key]].push(el);    }else{      r......
  • 常见网络摄像机(摄像头)的端口及RTSP地址
    海康威视默认IP地址:192.168.1.64/DHCP用户名admin密码自己设端口:“HTTP端口”(默认为80)、“RTSP端口”(默认为554)、“HTTPS端口”(默认443)和“服务端口”(默认8000),ONVIF端口80。RTSP地址:rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream......
  • 背包问题-动态规划
    概念背包问题是一类组合优化问题,抽象定义:有一系列的物品,每样都有重量和价值,选择一些物品使得总的重量不超过限制,总的价值尽可能大。背包是一种隐喻,即假设某人有固定容量的背包,怎样选择物品,使得物品的总价值最高。应用投资组合选择原料最优化切割Merkle–Hellman密钥的生......
  • Gson 对对象下的数组进行转换
    现有一个json数据{"result":[{"powerUnitId":1,"powerUnitName":"供电单位1"},{"powerUnitId":2,"p......
  • 最短路问题
    \[最短路\begin{cases}\单源最短路\quad\begin{cases}\所有边权都是正数\quad\begin{cases}\朴素Dijkstra算法\quad\\[3ex]堆优化版Dijkstra算法\quad\end{cases}\\\[5ex]存在负权边\quad\begin{cases}\Bell-Ford算法\quad\\[3ex]SPFA算法\quad\end{cases......