首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
ShineWang
获赞
0
粉丝
0
关注
3
看过 TA
0
男
北京理工大学
2020
安卓
IP属地:未知
10年Android开发经验
私信
关注
拉黑
举报
举报
确定要拉黑ShineWang吗?
发布(4)
刷题
ShineWang
2022-03-06 01:11
安卓
明明的随机数
题目比较长,大概意思是把一堆无序的数字进行去重和排序,数字个数不大于1000个,数字大小是1-500之间。 解析:常规思路估计是用HashMap做去重,然后再转成数组,用Arrays.sort排序。这样做的问题是效率低,瓶颈是HashMap和Arrays.sort。 我这里用了取巧的办法,因为数字的大小是1-500之间,所以我直接把这个数字大小看成数组索引,如果该索引恰好与输入的数字相同,就把该索引对应的值更新为1,因为索引本身就是有序的,所以排序自然解决。对于去重就更简单了,如果再次发现输入数字与索引相同,那么就覆盖该索引的值即可,相当于去重了。 输出的时候,只需要判断索引...
0
点赞
评论
收藏
转发
ShineWang
2022-03-06 01:14
已编辑
安卓
计算某字符出现次数
接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数(不区分大小写字母),字符串长度不大于1000。 解析:常规做法是用HashMap,键是字符串中出现的字符,值就是该字符在字符串中出现的次数,这样做虽然可以,但是效率很低,瓶颈在HashMap。 我这里取个巧,利用ASCII码表的值作为数组的索引,索引的值就是字符出现的次数。这里用码表的原因是字符串只由字母、数字和空格组成,刚好每超出码表范围,如果是UTF字符就不行了。 这里面遍历的时候,我用了首尾同时前进,这样循环次数可以减少一半。 最后读取次数的时候,把要...
0
点赞
评论
收藏
转发
ShineWang
2022-03-06 01:13
已编辑
安卓
查找字符串的最后一个单词的长度
查找字符串的最后一个单词的长度,单词之间有空格,字符串长度不超过5000。 解析:常用的办法是使用split按空格截断字符串,然后查找数组中最后一个位置的字符串长度。我这里取了个巧,没有使用split,而是用String的charAt,这样相比split省去了对字符串全文的分割,我只处理字符串最后一个单词,这样随着全文字符串长度的增加,复杂度不变,而split的复杂度会随着全文字符串长度的增加而增加。 import java.util.*; import java.io.*; public class Main{ pub...
0
点赞
评论
收藏
转发
ShineWang
2022-03-05 17:14
安卓
查找字符串最后一个单词的长度
2022-03-05
在牛客打卡1天,今天学习:刷题 1 道/代码提交 7 次
每日监督打卡
0
点赞
评论
收藏
转发
1
工具箱
TA的圈子
暂未加入圈子
TA的圈子
TA的笔记
暂无笔记
TA的笔记
登录
0
天
已登录
0
天
连续登录
0
人
今日访客
牛客网
牛客企业服务