zoukankan      html  css  js  c++  java
  • 剑指 Offer 53

    class Solution {
        public int search(int[] nums, int target) {
            int number =0;
            if(nums != null && nums.length>0){
                int first = getFirstK(nums,nums.length,target,0,nums.length-1);
                int last = getLastK(nums,nums.length,target,0,nums.length-1);
            
                if(first >-1 && last >-1){
                    number = last -first +1;
                }
            }
            return number;
        }
        int getFirstK(int[] data,int length,int k,int start,int end){
            if(start>end){
                return -1;
            }
            int midIndex = (start + end)/2;
            int midData = data[midIndex];
    
            if(midData == k){
                if((midIndex > 0 && data[midIndex-1] != k) || midIndex == 0 ){
                    return midIndex;
                }else {
                    end = midIndex -1 ;
                }
    
            }else if (midData >k){
                end = midIndex-1;
            }else{
                start = midIndex +1 ;
            }
            return getFirstK(data,length,k,start,end);
            
        }
        int getLastK(int[] data,int length,int k,int start,int end){
            if(start > end){
                return -1;
            }
            int midIndex = (start + end)/2;
            int midData = data[midIndex];
    
            if(midData == k){
                if((midIndex < length-1 && data[midIndex+1]!= k)|| midIndex == length-1){
                    return midIndex;
                }else{
                    start = midIndex +1;
                }
            } else if(midData > k){
                end = midIndex -1 ;
            }else{
                start = midIndex +1 ;
            }
            return getLastK(data,length,k,start,end);
        }
    }

    LeetCode上大佬解法 ,干净,简洁

  • 相关阅读:
    Python M3 面向对象
    Python 基础
    Python 基础
    Python 基础
    Python 作业
    Python 基础
    Python 基础
    【机器学习】周志华 读书笔记 第三章 线性模型
    【机器学习】周志华 读书笔记 第二章 模型评估与选择
    【机器学习】周志华 读书笔记 第一章 绪论
  • 原文地址:https://www.cnblogs.com/peanut-zh/p/14147611.html
Copyright © 2011-2022 走看看