zoukankan      html  css  js  c++  java
  • Nested List

    1、Nested List Weight Sum

     1 class Solution {
     2 public:
     3     int depthSum(vector<NestedInteger>& nestedList) {
     4          int res =0;
     5          int level = 1;
     6          for(auto p : nestedList)
     7          {
     8                 res += levelSum(p, level);
     9          }
    10          return res;
    11     }
    12     int levelSum(NestedInteger p, int level)
    13     {
    14          int res =0;
    15          if(p.isInterger()) return level*p.getInterger();
    16          for(auto i :p.getList())
    17          {
    18                  res += levelSum(i, level+1); 
    19          }
    20          return res;
    21     }
    22     
    23 };

    2、Flatten Nested List Iterator

     1 /**
     2  * // This is the interface that allows for creating nested lists.
     3  * // You should not implement it, or speculate about its implementation
     4  * class NestedInteger {
     5  *   public:
     6  *     // Return true if this NestedInteger holds a single integer, rather than a nested list.
     7  *     bool isInteger() const;
     8  *
     9  *     // Return the single integer that this NestedInteger holds, if it holds a single integer
    10  *     // The result is undefined if this NestedInteger holds a nested list
    11  *     int getInteger() const;
    12  *
    13  *     // Return the nested list that this NestedInteger holds, if it holds a nested list
    14  *     // The result is undefined if this NestedInteger holds a single integer
    15  *     const vector<NestedInteger> &getList() const;
    16  * };
    17  */
    18 class NestedIterator {
    19 public:
    20     void dfs(NestedInteger p)
    21     {
    22          if(p.isInteger())
    23               list.push_back(p.getInteger());
    24          for(auto i : p.getList())
    25             dfs(i);
    26     }
    27     NestedIterator(vector<NestedInteger> &nestedList) {
    28         for(auto i : nestedList)
    29              dfs(i);
    30         iter = 0;
    31     }
    32 
    33     int next() {
    34         return list[iter++];
    35     }
    36 
    37     bool hasNext() {
    38         if(iter<list.size())
    39         return true;
    40         else return false;
    41     }
    42 private:
    43     vector<int> list;
    44     int iter;
    45 };
    46 
    47 /**
    48  * Your NestedIterator object will be instantiated and called as such:
    49  * NestedIterator i(nestedList);
    50  * while (i.hasNext()) cout << i.next();
    51  */
  • 相关阅读:
    笔记本
    物料主档建立(PP模组)
    烦!烦!烦!
    Windows Live Writer试用
    SAP系统中发送公告的几种办法
    [CSS样式表之] 渐变色的实现
    今天终于开通了这个博客了
    MFC消息映射机制过程
    绘图
    C++ 内存分配和指针
  • 原文地址:https://www.cnblogs.com/daocaorenblog/p/5530609.html
Copyright © 2011-2022 走看看