zoukankan      html  css  js  c++  java
  • 统计一个整数在排序(升序)整数数组中出现的次数

    统计一个整数在排序(升序)整数数组中出现的次数。

    二分查找,分别查找大于目标值0.5(随便一个大于0小于1的数即可)和小于目标值0.5的数,取两位置之差。

    Python

    # -*- coding:utf-8 -*-
    class Solution:
        def GetNumberOfK(self, data, k):
            def binarySearch(data, k):
                low = 0
                high = len(data) -1
                while low <= high:
                    mid = (low + high) >> 1
                    if data[mid] < k:
                        low = mid + 1
                    elif data[mid] > k:
                        high = mid - 1
                return low
            if not data:
                return 0
            return binarySearch(data, k+0.5)-binarySearch(data, k-0.5)
    

    Java

    public class Solution {
        public int BinarySearch(int [] array, double k) {
            int low = 0, high = array.length-1, mid = 0;
            while(low <= high) {
                mid = (low + high) / 2;
                if(k >= array[mid]) {
                    low = mid + 1;
                } else {
                    high = mid - 1;
                }
            }
            return low;
        }
        public int GetNumberOfK(int [] array , int k) {
            return BinarySearch(array, k+0.5) - BinarySearch(array, k-0.5);
        }
    }
    
  • 相关阅读:
    MySQL-sql语句
    常见IP端口
    Java开发异常
    微信开发-charles抓包
    6、分组查询
    5、关联查询
    4、查询
    3、表的管理
    2、用户管理
    1、oracle基本使用
  • 原文地址:https://www.cnblogs.com/renzongxian/p/7464391.html
Copyright © 2011-2022 走看看