网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

golang刷leetcode技巧之如何实现数字流的秩

小编给大家分享一下golang刷leetcode技巧之如何实现数字流的秩,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

创新互联主要从事成都网站建设、做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务南芬,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

假设你正在读取一串整数。每隔一段时间,你希望能找出数字 x 的秩(小于或等于 x 的值的个数)。请实现数据结构和算法来支持这些操作,也就是说:

实现 track(int x) 方法,每读入一个数字都会调用该方法;

实现 getRankOfNumber(int x) 方法,返回小于或等于 x 的值的个数。

注意:本题相对原题稍作改动

示例:

输入:

["StreamRank", "getRankOfNumber", "track", "getRankOfNumber"]

[[], [1], [0], [0]]

输出:

[null,0,null,1]

提示:

x <= 50000

track 和 getRankOfNumber 方法的调用次数均不超过 2000 次

解题思路

1,这是二分查找的拓展

2,包含二分查找和二分插入

3,与二分查找的区别是,找到mid位置后,如果mid位置的值<=target ,需要后移mid

代码实现

type StreamRank struct {  data []int}

func Constructor() StreamRank {   return StreamRank{}}func (this *StreamRank) getMid(x int)int{   i:=0   j:=len(this.data)-1   mid:=(i+j)/2   for i+1       if this.data[mid]==x{           break       }       if this.data[mid]          i=mid+1       }else{           j=mid-1       }       mid=(i+j)/2   }   for mid       mid++   }   return mid}
func (this *StreamRank) Track(x int)  {   if len(this.data)==0{       this.data=append(this.data,x)       return   }   mid:=this.getMid(x)             d:=this.data[mid:]       this.data=append(this.data[:mid:mid],x)       this.data=append(this.data,d...)       return}

func (this *StreamRank) GetRankOfNumber(x int) int {    if len(this.data)==0{        return 0    }   mid:=this.getMid(x)   return mid
}

/** * Your StreamRank object will be instantiated and called as such: * obj := Constructor(); * obj.Track(x); * param_2 := obj.GetRankOfNumber(x); *

以上是“golang刷leetcode技巧之如何实现数字流的秩”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


本文题目:golang刷leetcode技巧之如何实现数字流的秩
网页路径:http://bjjierui.cn/article/pccdgs.html