首页 > 其他分享 >341. 扁平化嵌套列表迭代器

341. 扁平化嵌套列表迭代器

时间:2023-11-30 15:58:08浏览次数:36  
标签:扁平化 迭代 st lit 嵌套 341 nestedList first

341. 扁平化嵌套列表迭代器

2021年3月23日

没有代码提示的我快死了

就是个遍历……只要知道函数和方法就没什么难度

注意尝试迭代,不要用递归

class NestedIterator {
private:
    int curInteger;
    stack<pair<vector<NestedInteger>::iterator, vector<NestedInteger>::iterator>> st;

public:
    NestedIterator(vector<NestedInteger> &nestedList) {
        st.emplace(nestedList.begin(),nestedList.end());
    }
    
    int next() {
        return curInteger;
    }
    
    bool hasNext() {
        while(!st.empty()){
            auto &i=st.top();
            if(i.first==i.second){
                st.pop();
                continue;
            }
            if(i.first->isInteger()){
                curInteger=i.first->getInteger();
                i.first++;
                return true;
            }
            auto &lit=i.first->getList();
            st.emplace(lit.begin(),lit.end());
            i.first++;
        }
        return false;
    }
};

标签:扁平化,迭代,st,lit,嵌套,341,nestedList,first
From: https://www.cnblogs.com/CrossAutomaton/p/17867530.html

相关文章

  • 第九次上机内容 嵌套循环
    题目:浏览(chaoxing.com) (一)选择题1、D(二)填空题2、53、-14、115、852(三)程序阅读题6、17这里else有什么意义?7、 所给代码等同于intmain(void){for(inti=1;i<=5;++i){if(i%2)cout<<'*'<<'#';elsecontinue......
  • Vue 嵌套选项卡 购物车
    嵌套选项卡  <!DOCTYPEhtml> <html> <head> <metacharset="utf-8"/> <metaname="viewport"content="width=device-width,initial-scale=1"> <scriptsrc="js/vue.js"></scrip......
  • java基础学习:死循环,循环嵌套
    1.死循环:写法 packagecom.itheima.loop;publicclassEndLessLoop{publicstaticvoidmain(String[]args){//掌握死循环写法//for(;;){//System.out.println("ss");//}//while(true){//System......
  • python对象嵌套
    一、描述python对象嵌套,即包含的关系。python实现:班级(名字,多个学生)、学生(学号,姓名) 二、详细说明要想实现班级里含有多个学生的这种关系,可以在班级类里嵌套学生类,将学生类信息以列表的形式存储保存即可1classStudent:2def__init__(self,s_no,s_name):3......
  • 客户端相关知识学习(四)之H5页面如何嵌套到APP中
      Android原生如何渲染H5页面Android与H5的交互方式大概有以下1种:利用WebView进行交互(系统API)iOS原生如何渲染H5页面iOS与H5的交互方式大概有以下5种:利用WKWebView进行交互(系统API)利用UIWebView进行交互(系统API)苹果的javascriptcore.f......
  • Vue3中 使用v-for嵌套 获取其他数组中的值作为key值 渲染数据
    <tbody><trv-for="(row,idx)inrows":key="idx"><tdv-for="(item,key)intitle":key="key">{{row[key]}}</td></tr>......
  • 2-4 函数高级(嵌套、闭包、装饰器)
    ​ 概要:函数的嵌套闭包装饰器  1.函数嵌套Python中以函数为作用域,在作用域中定义的相关数据只能被当前作用域或子作用域使用。NAME="ayden"print(NAME)​deffunc():  print(NAME)​func() 1.1函数在作用域中其实,函数也是定义在作用域中......
  • 第八单元 嵌套查询
    什么时候要使用嵌套查询?学生信息表:学生编号姓名班级Id电话性别生日180325011任我行513823204456男1999-09-09180325012张三413823204452女1998-08-08180325013李四218899251152男1997-07-07180325014王五113597445645女1998-08-081803250......
  • 【Python】 多层级嵌套循环
    1.渲染多级菜单,并调整数据#生成菜单树状目录classMenuTreeView(APIView):#多层级生成树状目录defgenerate_menu_tree(self,parent_menu):temp_menu_list=[]sub_menus=models.Menu.objects.filter(parent=parent_menu)forsu......
  • 循环嵌套 质数
    7-1循环嵌套计算s=1+(1+2)+(1+2+3)+……+(1+2+……+n)。输入格式:输入在一行中给出n的值。输出格式:在输出行显示计算出的结果。输入样例:在这里给出一组输入。例如:20输出样例:在这里给出相应的输出。例如:sum=1540解题思路:1.观察需要计算的式子可知,需要计算n次......