文章目录

  • 1. 题目
  • 2. 解题

1. 题目

请设计并实现一个能够展开二维向量的迭代器。该迭代器需要支持 next 和 hasNext 两种操作。、

示例:
Vector2D iterator = new Vector2D([[1,2],[3],[4]]);iterator.next(); // 返回 1
iterator.next(); // 返回 2
iterator.next(); // 返回 3
iterator.hasNext(); // 返回 true
iterator.hasNext(); // 返回 true
iterator.next(); // 返回 4
iterator.hasNext(); // 返回 false

注意:

  • 请记得 重置 在 Vector2D 中声明的类变量(静态变量),因为类变量会 在多个测试用例中保持不变,影响判题准确。请 查阅 这里。
  • 你可以假定 next() 的调用总是合法的,即当 next() 被调用时,二维向量总是存在至少一个后续元素。

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/flatten-2d-vector
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

class Vector2D {vector<vector<int>> arr;int r = 0, c = 0, m;
public:Vector2D(vector<vector<int>>& v) {arr = v;m = arr.size();}int next() {while(c == arr[r].size())//跳过没有剩余元素的行{r++;c = 0;}return arr[r][c++];}bool hasNext() {while(r < m && c == arr[r].size()){ //跳过没有剩余元素的行r++;c = 0;}return r < m-1 || (r == m-1 && c < arr[m-1].size());}
};

72 ms 21.9 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 251. 展开二维向量相关推荐

  1. python二维向量运算模拟_python二维向量运算_[VB.NET][C#]二维向量的基本运算

    前言 在数学中,几何向量是指具有大小和方向的几何对象. 在编程中,向量有着广泛的应用,其作用在图形编程和游戏物理引擎方面尤为突出. 第一节 构造函数 通过创建一个二维向量的类(或结构体),实现向量的表 ...

  2. 从二维向量跟虚数的区别到欧拉公式,复指数函数

    正如我们所知道的,二维向量和虚数都可以写为[a,b]这样子的形式,在平面坐标和复平面都可以都有一个点与之对 应,他们之间是一样的吗? 二维向量的两个数是完全独立变量,两者之间没有什么关系,向量的含义比 ...

  3. OpenCV展开二维相位图

    OpenCV展开二维相位图 展开二维相位图 目标 代码 解释 展开二维相位图 目标 在本教程中,您将学习如何使用相位展开模块来展开二维相位图 代码 #include <opencv2/imgpr ...

  4. uda 3.C++二维向量

    二维向量 接下来,你将使用向量来存储矩阵.就像 Python 使用列表列表来存储矩阵一样,C++ 使用的是向量的向量.用于声明二维向量的语法有点复杂. 假设你正在使用 Python,并且想存储一个 3 ...

  5. LeetCode 240. 搜索二维矩阵 II(二分查找 分治)

    文章目录 1. 题目 2. 解题 2.1 从左下角或者右上角开始搜索 2.2 分治算法 1. 题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以 ...

  6. C++:二维数组和二维向量的长度

    对于一个二维数组: int mm[3][5] = { { 1,2,3,4,5 },{ 5,6,7,8,9 },{ 9,10,11,12,13 } }; int toatlnums = sizeof(m ...

  7. 用vector实现二维向量

    如果一个向量的每一个元素是一个向量,则称为二维向量,例如 [cpp] view plain copy   vector<vector<int> >vv(3, vector< ...

  8. c++中二维数组与二维向量的长度

    对于一个二维数组: int mm[3][5] = { { 1,2,3,4,5 },{ 5,6,7,8,9 },{ 9,10,11,12,13 } }; int toatlnums = sizeof(m ...

  9. Python 编程训练2:二维向量

    目标 定义一个 Python 类名为 V2,用于表示二维向量,支持下列向量运算: 由两个实数创建一个二维向量:如:v = V2(1.1, 2.2) 将一个向量转换为字符串形式(使用__str__方法) ...

最新文章

  1. Go的日志模块glog调研笔记
  2. FL2440移植LINUX-3.4.2 -- 按键驱动和触摸屏驱动移植
  3. 理解Bias(偏差),Error(误差),和Variance(方差)的区别和联系?
  4. 初涉c#设计模式-Iterator Pattern
  5. 基础知识—数据类型-常量及符号
  6. GCC帧指针的开启与关闭以及反汇编测试
  7. 金九银十,年轻人跳槽时,尽量不要选择这三类得不偿失的公司
  8. 专题:CentOS社区企业操作系统
  9. Windows 下 Redis 服务无法启动,错误 1067 进程意外终止解决方案
  10. Referrer Policy 介绍
  11. 下载mp4v2代码的链接
  12. 测试环境搭建 openwebmail+花生壳(linux客户端)
  13. html5 gif 只播放一次,使用JS和canvas实现gif动图的停止和播放代码
  14. java poi 导出excel设置数据有效性
  15. 为什么软件开发周期总是预估的2~3倍?
  16. android开发股票数据接口,股票数据接口-股票数据接口api
  17. 网页保存PDF 保留文字 删除页面 裁剪页面 删除不需要的内容
  18. 各串口设备节点/dev/tty* 的区别
  19. 【减肥】个人科学减肥大致原理记录
  20. A-Level真题每期一练(11)

热门文章

  1. redhat虚拟机安装
  2. this static 面向对象三大特点
  3. java汉字转化accic_Java自主学习贴
  4. e480 黑苹果_Thinkpad E480黑苹果组建Fusion Drive——鱼和熊掌我都要
  5. uboot源码——命令体系
  6. Mysql安装后在服务里找不到和服务启动不起来的解决方法
  7. vs2017常量文本字符串无法转换成char*
  8. Find The Multiple POJ - 1426 (BFS)
  9. 017-通过govendor管理依赖包
  10. Maven 入门 (1)—— 安装