forked from doocs/leetcode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSolution.java
38 lines (33 loc) · 890 Bytes
/
Solution.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class BrowserHistory {
private List<String> urls;
private int cur = -1;
private int tail = -1;
public BrowserHistory(String homepage) {
urls = new ArrayList<>();
visit(homepage);
}
public void visit(String url) {
++cur;
if (cur < urls.size()) {
urls.set(cur, url);
} else {
urls.add(url);
}
tail = cur;
}
public String back(int steps) {
cur = Math.max(0, cur - steps);
return urls.get(cur);
}
public String forward(int steps) {
cur = Math.min(tail, cur + steps);
return urls.get(cur);
}
}
/**
* Your BrowserHistory object will be instantiated and called as such:
* BrowserHistory obj = new BrowserHistory(homepage);
* obj.visit(url);
* String param_2 = obj.back(steps);
* String param_3 = obj.forward(steps);
*/