0
点赞
收藏
分享

微信扫一扫

Kafka学习笔记01

你带来了我的快乐 2023-09-27 阅读 34

二分查找

今日刷到二分查找,以前做过的题忘的一干二净;庆幸自己用新的方法做了出来两道“中等”题;(我都能做出来我认为应该标“简单”)由于之前题的难度基本在抄答案,所以停更几天。今天没抄答案就更新一下。

34. 在排序数组中查找元素的第一个和最后一个位置 

算法思路

“ 间复杂度为 O(log n) ,按照非递减顺序排列的整数数组 nums”两个提示说明要用到二分查找才能满足题目要求,直接写出二分查找基本函数biSearch(int[] nums, int target),并在主函数调用;若在nums中找到target,则返回target的索引mid,否则返回-1;若返回-1就表示没找到,则返回[-1,-1];由于是非递数组,若有多个target值应该是连续存在,故从mid向两侧开始寻找,返回[indexl,indexr]即可;+1,-1是因为while跳出循环前多+/-一次;

class Solution {
    public int[] searchRange(int[] nums, int target) {
        int left=0,right=nums.length-1;
        int temp=biSearch(nums,target);
        if(temp>=0){
            int indexr=temp, indexl=temp;
            while(indexr<=right&&nums[indexr]==nums[temp]){
                indexr++;
            }
            while(indexl>=0&&nums[indexl]==nums[temp]){
                indexl--;
            }
            return new int[]{indexl+1,indexr-1};
            
        }
        return new int[]{-1,-1};
    }

    public int biSearch(int[] nums, int target) {
        int left=0,right=nums.length-1;
        while(left<=right){
            int mid=(right-left)/2+left;
            if(nums[mid]==target){
                return mid;
            }
            if(nums[mid]>target){
                right=mid-1;
            }else{
                left=mid+1;
            }
        }
        return -1;
    }
}

结果

74.搜索二维矩阵 

算法思路

“非递减”直接使用效率最高的二分查找;每行循环一次进行一次二分查找找到为止;

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        for(int[] num:matrix){
            if(biSearch(num,target)==true){
                return true;
            }
        }
        return false;
    }

    public boolean biSearch(int[] nums, int target){
        int left=0, right=nums.length-1;
        while(left<=right){
            int mid=(right-left)/2+left;
            if(nums[mid]==target){
                return true;
            }
            if(nums[mid]>target){
                right=mid-1;
            }else{
                left=mid+1;
            }
        }
        return false;
    }
}

 结果


 

举报

相关推荐

【kafka学习笔记】初识Kafka

学习笔记01

kafka学习笔记

【学习笔记01】

kafka学习笔记07

0 条评论