题
思
leetcode732
不长记性啊,还是没做出来。
其实跟我的日程安排2是一样的。
确实秀,但是我还是忘了。
官方题解写的很漂亮。
剑指offer38
普通的深搜就能过,数据范围太小了。
代码
leetcode732
class MyCalendarThree {
Map<Integer, Integer> map = new TreeMap<Integer, Integer>();
public MyCalendarThree() {
}
public int book(int start, int end) {
map.put(start, map.getOrDefault(start, 0) + 1);
map.put(end, map.getOrDefault(end, 0) - 1);
int max = 0, temp = 0;
for (Integer i : map.values()) {
temp += i;
if (temp > max) {
max = temp;
}
}
return max;
}
}
剑指offer38
class Solution {
private Set<String> set = new HashSet<String>();
private Stack<Integer> stack = new Stack<Integer>();
public String[] permutation(String s) {
dfs(s);
return set.toArray(new String[0]);
}
private void dfs(String s) {
if (stack.size() == s.length()) {
set.add(idx2Str(stack, s));
} else {
for (int i = 0; i < s.length(); i++) {
if (!stack.contains(i)) {
stack.push(i);
dfs(s);
stack.pop();
}
}
}
}
private String idx2Str(Stack<Integer> stack, String s) {
StringBuilder sb = new StringBuilder();
for (Integer idx : stack) {
sb.append(s.charAt(idx));
}
return sb.toString();
}
}