首页 > 其他分享 >Q3 LeetCode34 在排序数组中找起始位置

Q3 LeetCode34 在排序数组中找起始位置

时间:2024-06-01 20:45:32浏览次数:14  
标签:Q3 right int mid rightBorder 数组 LeetCode34 排序 left

提交错误:数组访问越界

1.验证数组越界的语句要放在执行语句的前面,要不然前面报错无法进行到后面部分

2.本题使用两次二分查找,左边界找到后,将rigiht指针设置成mid-1,继续查找更左的边界,右边界同理将left设置成mid+1

3.new int[ ]{1,1}   新数组创建方式

 

 1 class Solution {
 2     public int[] searchRange(int[] nums, int target) {
 3         int leftBorder=-1,rightBorder=-1,left=0,right=nums.length-1;
 4         while(left<=right){
 5             int mid=(left+right)/2;
 6             if(nums[mid]<target){
 7                 left=mid+1;
 8             }
 9             else if(nums[mid]>target){
10                 right=mid-1;
11             }
12             else{
13                 leftBorder=mid;
14                 right=mid-1;
15             }
16         }
17         left=0;
18         right=nums.length-1;
19         while(left<=right){
20             int mid=(left+right)/2;
21             if(nums[mid]<target){
22                 left=mid+1;
23             }
24             else if(nums[mid]>target){
25                 right=mid-1;
26             }
27             else{
28                 rightBorder=mid;
29                 left=mid+1;
30             }
31         }
32         return new int[]{leftBorder,rightBorder};
33     }
34 }

 

标签:Q3,right,int,mid,rightBorder,数组,LeetCode34,排序,left
From: https://www.cnblogs.com/cff1/p/18226371

相关文章

  • [排序算法]选择排序+堆排序全梳理!
    目录前言1.直接选择排序基本思想具体步骤:动图演示代码实现直接选择特性总结:2.堆排序向下调整算法任意树调整为堆的思想堆排序堆排序的基本思想:动图演示选择排序的特性总结:3.总结前言今天我们将学习排序算法中的直接选择排序和堆排序,它们的基本思想都是每一......
  • 冒泡排序
    //通过指针交换两个元素的值voidswap(int*a,int*b){inttemp=*a;*a=*b;*b=temp;}/*****************************************************************name;BubbleSort*function:sort*parameter;*@intarr[]*......
  • 插入排序
    //通过指针交换两个元素的值voidswap(int*a,int*b){inttemp=*a;*a=*b;*b=temp;}/*****************************************************************name;InsertSort*function:sort*parameter;*@intarr[]*......
  • 选择排序
    //通过指针交换两个元素的值voidswap(int*a,int*b){inttemp=*a;*a=*b;*b=temp;}/*****************************************************************name;SeletSort*function:sort*parameter;*@intarr[]*......
  • 快速排序分区法
    //通过指针交换两个元素的值voidswap(int*a,int*b){inttemp=*a;*a=*b;*b=temp;}/*****************************************************************name;subzone*function:partzone*parameter;*@intarr[]*......
  • 一对一直播软件源码,比较常用的数组排序方式有哪些?
    一对一直播软件源码,比较常用的数组排序方式有哪些?一、简单的sort排序:vararr=[1,5,3,87,23];arr.sort(function(a,b){returna-b;})console.log(arr);//输出:[1,23,3,5,87] 注:若返回b-a可获得从大到小的排序;数组的sort方法只能实现简单的按位排序,并不精......
  • java通过冒泡排序对数组进行排序
    冒泡排序是从列表第一个元素开始,比较相邻两个元素大小,小的排在前面,大的排后面,循环反复,小的数据会像气泡那样上浮。packageproject;publicclassMaopaopaixu{ publicstaticvoidmain(String[]args){ //冒泡排序 int[]arr={9,8,3,5,2}; for(inti=0;i<arr.le......
  • mysql针对中文和数字字段进行排序
    场景1field函数的使用field(str,str1,str2,str3,str4…)字段str按照字符串1、字符串2、字符串3、字符串4的顺序返回查询到的结果集。如果表字段值str不存在,放在结果集的最前面subString如七年级1班,想要截取第一个字符,就是substring(user_name,1,1),第一个参数写字段,第二个参数......
  • QT实现对文件名进行排序
    QStringListQDir::entryList(QDir::Filtersfilters=NoFilter,QDir::SortFlagssort=NoSort)const,该成员函数实现根据路径获取该文件夹下文件,其中QDir::SortFlags是一个枚举类型,各个常量参照QT的官方文档:QDirfiledir(dir_path);QStringListfilenames=filedir.entryL......
  • 数据结构排序算法之直接插入排序与希尔排序【图文详解】
    P.S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。P.S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。                                             博主主页:LiUEEEEE         ......