Description
via: https://leetcode.cn/problems/alert-using-same-key-card-three-or-more-times-in-a-one-hour-period
Solutions
Conclusion
- 多声明局部变量是一个好习惯,有时候为了紧凑的写法,而不考虑写更清晰的局部变量非常不明智 code-style
for(int i = 0; i<keyName.length; i++){
hm.putIfAbsent(keyName[i], new ArrayList<>());
Integer hour = (keyTime[i].charAt(0) -'0')* 10 + (keyTime[i].charAt(1) - '0');
Integer minute = (keyTime[i].charAt(3) - '0')* 10 + (keyTime[i].charAt(4) - '0');
timeMap.get(keyName[i]).add(hour*60+minute);
}
// Integer hour = (keyTime[i].charAt(0) -'0')* 10 + (keyTime[i].charAt(1) - '0');
// ↑
// 这里非常容易写错,是冗余的写法;
for (int i = 0; i < n; i++) {
String name = keyName[i];
String time = keyTime[i];
timeMap.putIfAbsent(name, new ArrayList<Integer>());
int hour = (time.charAt(0) - '0') * 10 + (time.charAt(1) - '0');
int minute = (time.charAt(3) - '0') * 10 + (time.charAt(4) - '0');
timeMap.get(name).add(hour * 60 + minute);
}
*// error ArrayList<String> key_time = (ArrayList<String>) Arrays.asList(keyTime);
**// right ArrayList<String> key_time = new ArrayList<>(Arrays.asList(keyTime));
*