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);
        }
    }
    
  • 相关阅读:
    pytorch和tensorflow
    创建用户
    linux 软件安装
    python 常见错误集锦
    Anaconda常规用法
    两个电脑之间文件快穿-基于用一个局域网和python的使用
    python-pip使用整理
    时间序列 -prophet
    SQL习题集锦
    取色器RGB转换htlm
  • 原文地址:https://www.cnblogs.com/renzongxian/p/7464391.html
Copyright © 2011-2022 走看看