中级农民
- 积分
- 100
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2014-1-5
- 最后登录
- 1970-1-1
|
注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
已毕业,还没开始投,打算刷完cc150外加leetcode easy和medium再投,每日刷题数量争取十道+。。
开帖是为了记录刷题心得,也为了跟小伙伴一起讨论,如有不同建议,请指正。
因为是第一遍,答案偶尔不是原版
今日重点: HashMap相关
[leetcode 290] word pattern https://leetcode.com/problems/word-pattern/
public class Solution {
public boolean wordPattern(String pattern, String str) {
String[] strs = str.split(" ");
char[] patterns = pattern.toCharArray();
Map<Character, String> maps = new HashMap<>();
if(pattern.length() != strs.length) {
return false;
}
int len = patterns.length;
for(int i = 0; i< len; i++) {
char ch = patterns[i];
if(maps.containsKey(ch)) {
String value = maps.get(ch);
if(!value.equals(strs[i])) {
return false;
}
} else {
if(maps.containsValue(strs[i])) {
return false;
}
maps.put(ch, strs[i]);
}
}
return true;
}
}
心得: 提交时将直接调用pattern字符串的charAt,改成将pattern转为char数组,运行时间均显示3ms,但runtime从打败了12%提升到了19%。
最后一次提交将for循环中的判断条件提出来,先用变量len记录,运行时间变为2ms,runtime beat掉70%多。
|
上一篇: LC Course Schedule, 两种DFS,一种TLE,另一种没有,请教一下原因下一篇: 手势密码的算法
|