关注
第一题:
char[] chars = s.toCharArray();
//记录不同的字符,并将值置为2
HashMap<Character, Integer> map = new HashMap<>();
for (char aChar : chars) {
map.put(aChar, 2);
}
int left = 0;
int right = 0;
// 从左往右遍历 直到当前窗口包含所有字符 遍历结束后得到 从左往右最长的字符串
for (int i = 0; i < chars.length; i++) {
// 为2 说明当前字符没有加入当前窗口中 所以加入并将值设为1
if (map.get(chars[i]) == 2) {
//加入后 当前字符就不必考虑了
map.put(chars[i], 1);
//更新右边区间
right = i;
}
}
// 从右往左遍历 直到当前窗口包含所有字符 遍历结束后得到 从左往右最短的字符串
for (int i = right; i >= 0; i--) {
// 为1 说明当前字符没有加入当前窗口 所以加入并将值设为0
if (map.get(chars[i]) == 1) {
//加入后 当前字符就不必考虑了
map.put(chars[i], 0);
//更新左边区间
left = i;
}
}
return new int[]{left,right-left+1};
优化一下,可以提前终止,想不到其他的了,太菜了
查看原帖
点赞 评论
相关推荐
03-28 00:47
惠州学院 Java 点赞 评论 收藏
分享
04-28 10:29
门头沟学院 前端工程师 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 面试问题记录 #
31231次浏览 506人参与
# 假如我穿越到了妈妈的18岁 #
1616次浏览 27人参与
# 京东TGT #
35081次浏览 157人参与
# 入职第五天,你被拉进了几个工作群 #
14299次浏览 77人参与
# 面试经验谈 #
20342次浏览 321人参与
# 工作一周年分享 #
15270次浏览 101人参与
# 机械人,你的第一份感谢信是谁给的 #
23407次浏览 295人参与
# 对妈妈没说出口的话 #
13272次浏览 329人参与
# 视觉/交互/设计招聘信息汇总 #
10846次浏览 596人参与
# 面试吐槽bot #
5208次浏览 50人参与
# 妈妈治愈了你哪些脆皮时刻 #
5773次浏览 107人参与
# 请用你的专业向妈妈表白 #
4111次浏览 44人参与
# 职场新人生存指南 #
338239次浏览 7245人参与
# 异地恋该为对方跳槽吗 #
26898次浏览 130人参与
# 硬件人更看重稳定还是高薪 #
41867次浏览 213人参与
# 上班苦还是上学苦呢? #
214930次浏览 1288人参与
# 机械求职避坑tips #
42473次浏览 356人参与
# 硬件人秋招的第一个offer #
67053次浏览 1082人参与
# 零跑求职进展汇总 #
2083次浏览 16人参与
# 不考虑转正,实习多久合适 #
25721次浏览 119人参与
# 租房找室友 #
30210次浏览 150人参与