首页 > 编程语言 > 详细

[剑指Offer][数组]数字在升序数组中出现的次数

时间:2021-05-14 09:46:15      阅读:17      评论:0      收藏:0      [点我收藏+]

题目描述

统计一个数字在升序数组中出现的次数。
 
 1 public class Solution {
 2     public int GetNumberOfK(int [] array , int k) {
 3        if(array.length == 0) {
 4            return 0;
 5        }
 6        int result = 0;
 7        for(int i = 0; i < array.length; i ++) {
 8            if(array[i] == k) {
 9                result ++;
10            }
11        }
12        return result;
13     }
14 }
 1 public class Solution {
 2     public int GetNumberOfK(int[] array , int k) {
 3        int index = binarySearch(array, k);
 4         if(index < 0) {
 5             return 0;
 6         }
 7         int count = 1;
 8         for(int i = index + 1; i < array.length && array[i] == k; i++) {
 9             count++;
10         }
11         for(int i = index - 1; i >= 0 && array[i] == k; i --) {
12             count++;
13         }
14         return count;
15     }
16     
17     private int binarySearch(int[] array, int target) {
18         int left = 0;
19         int right = array.length - 1;
20         while(left <= right) {
21             int middle = (left + right) / 2;
22             if(array[middle] == target) {
23                 return middle;
24             }
25             if(array[middle] > target) {
26                 right = middle - 1;
27             }
28             if(array[middle] < target) {
29                 left = middle + 1;
30             }
31         }
32         return -1;
33     }
34 }

 

[剑指Offer][数组]数字在升序数组中出现的次数

原文:https://www.cnblogs.com/StringBuilder/p/14766668.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!