zoukankan      html  css  js  c++  java
  • LeetCode "Flatten 2D Vector"

    Just take care of corner cases..

    class Vector2D {
        vector<vector<int>> &r;
        int i, i0;
    public:
        Vector2D(vector<vector<int>>& vec2d) : r(vec2d), i(0), i0(0)
        {
            if(r.size() > 0)
                while (r[i].size() == 0) i++;
        }
    
        int next() 
        {
            int ret = r[i][i0];
            //    move on
            if (i0 < r[i].size() - 1) i0++;
            else if (i < r.size() - 1)
            {
                while (r[++i].size() == 0);
                i0 = 0;
            }
            else // i == r.size() - 1
            {
                i0++;
            }
            return ret;
        }
    
        bool hasNext() 
        {
            if(r.size() == 0) return false;
            if (i < r.size() - 1) return true;
            return i0 < r.back().size();
        }
    };
    View Code
  • 相关阅读:
    HDU 2276
    HDU 2254
    HDU 1536 & 1944
    HDU 1538
    HDU 2177
    HDU 2176
    HDU 1209
    HDU 1254
    c++ 11 default delete
    ssh免密登录
  • 原文地址:https://www.cnblogs.com/tonix/p/4749798.html
Copyright © 2011-2022 走看看