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


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

    二分查找,分别查找大于目标值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);
        }
    }
    
  • 相关阅读:
    数据类型补充
    Kubernetes1.18.5 Cilium安装
    Cilium安装要求
    CentOS内核升级
    临时存储 Ephemeral Storage
    Pod优先级
    kubelet 垃圾回收策略
    Kubernetes Eviction驱逐
    根据PID查看具体的容器
    Kubernetes 资源预留(二)
  • 原文地址:https://www.cnblogs.com/renzongxian/p/7464391.html
Copyright © 2020-2023  润新知