[LeetCode]5430. 设计浏览器历史记录
原创
©著作权归作者所有:来自51CTO博客作者俺叫西西弗斯的原创作品,请联系作者获取转载授权,否则将追究法律责任
算法标签 数组模拟
题目描述
![在这里插入图片描述 [LeetCode]5430. 设计浏览器历史记录_Max](https://s2.51cto.com/images/blog/202303/20141938_6417fafadb97e23361.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
思路
模拟整个过程
最重要的似乎就是拆分成数组模拟的思路
AC代码
class BrowserHistory {
public:
int idx=0;
string str[5000+10];
int Max=0;
BrowserHistory(string homepage) {
str[idx]=homepage;
}
void visit(string url) {
str[++idx]=url;
Max=idx;
}
string back(int steps) {
if(idx-steps<=0){idx=0;return str[0];}
else {idx-=steps;return str[idx];}
}
string forward(int steps) {
if(idx+steps>=Max){idx=Max;return str[Max];}
else {idx+=steps;return str[idx];}
}
};
/**
* 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);
*/
![在这里插入图片描述 [LeetCode]5430. 设计浏览器历史记录_数组_02](https://s2.51cto.com/images/blog/202303/20141939_6417fafb0eeed18189.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)