LeetCode Weekly Contest 148 3問目 - Snapshot Array [1146]

Source

LeetCode Weekly Contest 148
問題文

問題概要

省略

解法

省略

cLayversion 20190810-2)のコード

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

#define main dummy_main
{}
#undef main

class SnapshotArray {
public:
  vector<int> v[50000], t[50000];
  int cur;
  
  SnapshotArray(int length) {
    int i;
    cur = 0;
    rep(i,length) v[i].push_back(0);
    rep(i,length) t[i].push_back(0);
  }
  
  void set(int index, int val) {
    if(t[index][t[index].size()-1] == cur){
      v[index][v[index].size()-1] = val;
    } else {
      v[index].push_back(val);
      t[index].push_back(cur);
    }
  }
  
  int snap() {
    return cur++;
  }
  
  int get(int index, int snap_id) {
    int i;
    i = upper_bound(t[index].begin(), t[index].end(), snap_id) - t[index].begin();
    return v[index][i-1];
  }
};

Current time: 2024年04月26日08時17分45秒
Last modified: 2019年08月10日17時06分16秒 (by laycrs)
Tags: Competitive_Programming_Incomplete LeetCode
トップページに戻る

Logged in as: unknown user (not login)

ログイン: