189 8069 5689

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://cdxtjz.cn/article/pccdgs.html

联系我们

您好HELLO!
感谢您来到成都网站建设公司,若您有合作意向,请您为我们留言或使用以下方式联系我们, 我们将尽快给你回复,并为您提供真诚的设计服务,谢谢。
  • 电话:028- 86922220 18980695689
  • 商务合作邮箱:631063699@qq.com
  • 合作QQ: 532337155
  • 成都网站设计地址:成都市青羊区锣锅巷31号五金站写字楼6楼

小谭建站工作室

成都小谭网站建设公司拥有多年以上互联网从业经验的团队,始终保持务实的风格,以"帮助客户成功"为已任,专注于提供对客户有价值的服务。 我们已为众企业及上市公司提供专业的网站建设服务。我们不只是一家网站建设的网络公司;我们对营销、技术、管理都有自己独特见解,小谭建站采取“创意+综合+营销”一体化的方式为您提供更专业的服务!

小谭观点

相对传统的成都网站建设公司而言,小谭是互联网中的网站品牌策划,我们精于企业品牌与互联网相结合的整体战略服务。
我们始终认为,网站必须注入企业基因,真正使网站成为企业vi的一部分,让整个网站品牌策划体系变的深入而持久。