栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

NC74 数字在升序数组中出现的次数

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

NC74 数字在升序数组中出现的次数

方法1:java

暴力yyds

public class Solution {
    public int GetNumberOfK(int [] array , int k) {
       int flag=0;
        
        for (int num : array){
            if (num==k) flag++;
        }
        return flag;
    }
}

方法2:java

二分法芜湖。就是要注意一些值设的初始值~

关于mid=(low+high)/2与mid=low+(high-low)/2的区别:

mid=low+(high-low)/2 可以防止溢出喵

public class Solution {
    public int GetNumberOfK(int [] array , int k) {
        int flag1=-1,flag2=-1;
        int low=0,high=array.length-1;
        int count=0;
        
        while(low<=high){
            int mid=low+(high-low)/2;
            if (array[mid]k) high=mid-1;
            else{
            	//mid算一个就行。
                flag1=mid-1;
                flag2=mid;
                
                //向前扩展
                while(flag1>=0 && array[flag1]==k){
                    flag1--;
                    count++;
                }
                
                //向后扩展
                while(flag2 

方法2:python

class Solution:
    def GetNumberOfK(self, data, k):
        # write code here
        low,high=0,len(data)-1
        cnt=0
        while(low<=high):
            mid=low+int((high-low)/2)
            if data[mid]>k:
                high=mid-1
            elif data[mid]=0 and data[left]==k):
                    cnt+=1
                    left-=1
                
                #向后
                while(right 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/323169.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号