当前位置:网站首页>leetcode: 251. Expanding 2D Vectors
leetcode: 251. Expanding 2D Vectors
2022-08-04 14:37:00 【OceanStar's study notes】
题目来源
题目描述
题目解析
class Vector2D {
std::vector<std::vector<int>> m;
int row;
int col; //迭代器光标位置
bool canUse; //Whether the position pointed to by the cursor has already been used
public:
Vector2D(std::vector<std::vector<int>> v){
m = std::move(v);
row = 0, col = -1;
canUse = true; //认为[0, -1]使用过
has_next();
}
bool has_next(){
if(row == m.size()){
return false; //Exceeded terminating line
}
if(!canUse){
//The current number has not been used yet
return true;
}
// (row, col) 被使用过了, Going to the next one
if(col == m[row].size() - 1){
col = 0;
do{
//跳过空行
row++;
}while (row < m.size() && m[row].empty());
}else{
col++;
}
// 新的(row, col)
if(row != m.size()){
canUse = false;
return true;
}else{
return false; //to the end line
}
}
int next(){
int ans = m[row][col];
canUse = true;
has_next();
return ans;
}
};
边栏推荐
猜你喜欢
技术分享| 融合调度系统中的电子围栏功能说明
Qt的QItemDelegate使用
化繁为简,聊一聊复制状态机系统架构抽象
16、学习MySQL 正则表达式
CloudCompare&PCL 点云按网格划分(点云分幅)
郑轻新生校赛和中工选拔赛题解
特殊品种的二次开户验资金额
【 HMS core 】 【 Media 】 online video editing service 】 【 material can't show, or network anomalies have been Loading state
How to automatically renew the token after it expires?
leetcode:250. 统计同值子树
随机推荐
xpath获取带命名空间节点注意事项
没有Project Facets的解决方法
用于X射线聚焦的复合折射透镜
License server system does not support this version of this feature
基于数据库实现分布式锁
idea removes spark logs
如何和程序员谈恋爱
OAID是什么
宣传海报
蓝牙技术|上半年全国新增 130 万台充电桩,蓝牙充电桩将成为市场主流
2042. 检查句子中的数字是否递增-力扣双百代码-设置前置数据
属于程序猿的浪漫
ACL 2022 | 社会科学理论驱动的言论建模
自监督学习未来是掩码自编码器?KAIST最新《自监督学习掩码自编码器》研究进展
leetcode: 253. How many meeting rooms are required at least
实际工作中的高级技术(训练加速、推理加速、深度学习自适应、对抗神经网络)
Theory 1: Deep Learning - Detailed Explanation of the LetNet Model
爬虫——selenium基本使用、无界面浏览器、selenium的其他用法、selenium的cookie、爬虫案例
X射线掠入射聚焦反射镜
杭电校赛(ACM组队安排)