golang刷leetcode技巧之如何实现数字流的秩
发表于:2025-01-28 作者:千家信息网编辑
千家信息网最后更新 2025年01月28日,小编给大家分享一下golang刷leetcode技巧之如何实现数字流的秩,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!假设
千家信息网最后更新 2025年01月28日golang刷leetcode技巧之如何实现数字流的秩
小编给大家分享一下golang刷leetcode技巧之如何实现数字流的秩,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
假设你正在读取一串整数。每隔一段时间,你希望能找出数字 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技巧之如何实现数字流的秩"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
数字
方法
篇文章
技巧
个数
位置
内容
不怎么
也就是
也就是说
代码
大部分
思路
数据
数据结构
整数
时间
更多
本题
次数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
绝地求生国际服加速用哪个服务器
u8建立会计科目数据库表
数据库检修前 应
美国产互联网科技
网络安全进校园日记100字
ssh 项目查不到数据库
长宁区企业网络技术服务诚信合作
网站搭建在服务器上
cisco网络技术
游览器提交数据到服务器
网络技术是什么内容
华中科大网络安全
浙江数据软件开发价格服务标准
酉阳数据库编写工程师
网络安全例会制度
计箅机网络技术可以转本科吗
网络技术专业排行
企业网络安全防护1 x证书
软件开发缴纳印花税吗
网络技术和应用作业
数据库id用什么格式
物联网java软件开发
主机服务器安全规范
小学课堂网络安全教育课题
数据库系统理论
数据库中如何打开二维码
不用正版也能玩的小游戏服务器
飞机聊天软件服务器地址
智能化设计软件开发
苹果smb服务器无法显示