LeetCode Biweekly Contest 10 2問目 - Two Sum BSTs [1214]

Source

LeetCode Biweekly Contest 10
問題文

問題概要

省略

解法

省略

cLayversion 20191006-1)のコード

C++に変換後のコードはこちら

#define main dummy_main
{}
#undef main

#define TreeNode TreeNodeDummy
struct TreeNode {
  int val;
  TreeNode *left;
  TreeNode *right;
  TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
#undef TreeNode

int s, arr[5100];
int s1, arr1[5100];
int s2, arr2[5100];

void doit(TreeNode *x){
  if(x==NULL) return;
  arr[s++] = x->val;
  doit(x->left);
  doit(x->right);
}

class Solution {
public:
  bool twoSumBSTs(TreeNode* root1, TreeNode* root2, int target) {
    int i, j;
    set<int> ss;
    
    s = 0;
    doit(root1);
    s1 = s;
    rep(i,s1) arr1[i] = arr[i];

    s = 0;
    doit(root2);
    s2 = s;
    rep(i,s2) arr2[i] = arr[i];

    rep(i,s1) ss.insert(arr1[i]);
    rep(i,s2) if(ss.count(target - arr2[i])) return true;
    return false;
  }
};

Current time: 2024年03月28日21時21分10秒
Last modified: 2019年10月06日03時58分38秒 (by laycrs)
Tags: Competitive_Programming_Incomplete LeetCode
トップページに戻る

Logged in as: unknown user (not login)

ログイン: