当前位置: 代码迷 >> 综合 >> 剑指 Offer 53 - I. 在排序数组中查找数字 I--主站 34 题
  详细解决方案

剑指 Offer 53 - I. 在排序数组中查找数字 I--主站 34 题

热度:29   发布时间:2024-01-31 01:39:37.0

方法
算法思想:有序数组,由于数组 nums 中元素都为整数,因此可以分别二分查找 target和 target - 1 的右边界,将两结果相减并返回即可。
时间复杂度:O(logN)
空间复杂度:O(1)
边界条件:
补充知识:class Solution {

    public int search(int[] nums, int target) {

            return help(nums,target)-help(nums,target-1);

    }

    public int help(int []nums,int tar){

        int i=0,j=nums.length-1;

        while(i<=j){

            int m=(i+j)/2;

            if(tar>=nums[m]) i=m+1;

            else j=m-1;

        }

        return i;

    }

}

  相关解决方案