关注
第一题:
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};
优化一下,可以提前终止,想不到其他的了,太菜了
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 论秋招对个人心气的改变 #
3562次浏览 69人参与
# 牛客AI体验站 #
1824次浏览 63人参与
# 刚入职的你踩过哪些坑 #
2528次浏览 61人参与
# 在大厂上班是一种什么样的体验 #
2086次浏览 26人参与
# 程序员找工作至少要刷多少题? #
4829次浏览 81人参与
# 关于春招/暑期实习,你想知道哪些信息? #
2703次浏览 64人参与
# 一张图晒一下你的AI员工 #
1637次浏览 45人参与
# 为了减少AI幻觉,你注入过哪些设定? #
1029次浏览 35人参与
# 我现在比当时_,你想录用我吗 #
2552次浏览 42人参与
# 程序员能干到多少岁? #
3698次浏览 53人参与
# 产品人求职现状 #
320352次浏览 2422人参与
# AI Coding的使用心得 #
1475次浏览 38人参与
# 你的工资什么时候发? #
55494次浏览 345人参与
# 实习,不懂就问 #
163059次浏览 1453人参与
# 你投了多少份简历了? #
421526次浏览 3937人参与
# 金三银四,你有感觉到吗 #
679428次浏览 6047人参与
# 帆软软件工作体验 #
12486次浏览 67人参与
# 暑假倒计时,你都干了些啥? #
40151次浏览 213人参与
# 晒晒你司的新年福利 #
2421次浏览 47人参与
# 软开人,秋招你打算投哪些公司呢 #
180025次浏览 1379人参与
