首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
n100)个段落,第i个段落有number[i]个单词,
[问答题]
<n><100)个段落,第i个段落有number[i]个单词,设计算法,不得调用库函数,找出第m个单词属于第几个段落,查询共有k(k>一篇文章有n(10<n<100)个段落,第i个段落有number[i]个单词,设计算法,不得调用库函数,找出第m个单词属于第几个段落,查询共有k(k>10000)次,说明时间复杂度。(段落编号从0开始)
</n>
查看答案及解析
添加笔记
求解答(0)
邀请回答
收藏(0)
分享
纠错
1个回答
添加回答
0
小牧魔法袋
1.定义一个线性表,下标是单词个数,内容是该单词所属的段落,这样直接查询线性表第m位置的内容,时间复杂度为O(1),不过单词数多耗费空间大。或者用二分查找,定义一个数组,下标为段落,内容为该段落以及之前段落所有单词数量总和,时间复杂度O(log2n),空间占用低。
2.List<Integer> wordToPara = new ArrayList<Integer>();
int p = 0;
for(int i=0;i<n;i++) {
for(int j=0;j<number[i];j++) {
wordToPara[p] = i;
p++;
}
}
int whichWord = scanner.nextInt();
System.out.println(wordToPara.get(whichWord));
预处理:时间复杂度:单词总个数
查询:时间复杂度:
O(1)
空间复杂度:单词总个数。
发表于 2017-11-26 18:41:19
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
复杂度
查找
上传者:
小牧魔法袋
难度:
1条回答
0收藏
1390浏览
热门推荐
相关试题
明明的随机数
数组
评论
(3692)
来自
华为研发工程师编程题
5.下列判断正确的是( )
资料分析
言语理解与表达
资料分析
评论
(1)
已知a
40
=...
京东
职能
2019
财务
保险
评论
(1)
《拳皇97》最后BOSS是谁?
游戏常识
评论
(1)
《魔兽世界》中,下列不属于玩家可以...
游戏常识
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题