LeetCode Weekly Contest 150 2問目 - Maximum Level Sum of a Binary Tree [1161]

Source

LeetCode Weekly Contest 150
問題文

問題概要

省略

解法

省略

cLayversion 20190820-1)のコード [C++に変換後]

#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
#define main dummy_main
int main(){
  return 0;
}
#undef main

int s[100000];
int vis[100000];
void go(TreeNode* n, int dep){
  if(n==NULL){
    return;
  }
  vis[dep] = 1;
  s[dep] += n->val;
  go(n->left, dep+1);
  go(n->right, dep+1);
}
class Solution{
  public:
  int maxLevelSum(TreeNode* root){
    int i, res=0;
    for(i=0;i<(100000);i++){
      s[i] = 0;
    }
    for(i=0;i<(100000);i++){
      vis[i] = 0;
    }
    go(root, 0);
    res = 0;
    for(i=(1);i<(100000);i++){
      if(vis[i] && s[res] < s[i]){
        res = i;
      }
    }
    return res + 1;
  }
}
;
// cLay varsion 20190820-1

// --- original code ---
// #define main dummy_main
// {}
// #undef main
// 
// struct TreeNode{ int val; TreeNode *left, *right; };
// 
// int s[1d5], vis[1d5];
// 
// void go(TreeNode* n, int dep){
//   if(n==NULL) return;
//   vis[dep] = 1;
//   s[dep] += n->val;
//   go(n->left, dep+1);
//   go(n->right, dep+1);
// }
// 
// class Solution {
// public:
//   int maxLevelSum(TreeNode* root) {
//     int i, res = 0;
//     rep(i,1d5) s[i] = 0;
//     rep(i,1d5) vis[i] = 0;
// 
//     go(root, 0);
// 
//     res = 0;
//     rep(i,1,1d5) if(vis[i] && s[res] < s[i]) res = i;
// 
//     return res + 1;
//   }
// };

Current time: 2024年03月29日15時16分20秒
Last modified: 2019年08月20日01時40分18秒 (by laycrs)
Tags: Competitive_Programming_Incomplete LeetCode
トップページに戻る

Logged in as: unknown user (not login)

ログイン: