LeetCode Weekly Contest 158 4問目 - Maximum Equal Frequency [1224]

Source

LeetCode Weekly Contest 158
問題文

問題概要

省略

解法

省略

cLayversion 20191102-1)のコード

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

#define main dummy_main
{}
#undef main

int N;
int cnt[1d5];

class Solution {
public:
  int maxEqualFreq(vector<int>& A) {
    int k, x, y, res = 0;
    set<int> s;
    set<int>::iterator it;
    map<int,int> mp;

    N = A.size();
    rep(i,1d5) cnt[i] = 0;
    rep(i,N) A[i]--;

    rep(i,N){
      k = cnt[A[i]];
      if(k) if(--mp[k]==0) s.erase(k);
      cnt[A[i]]++;
      k = cnt[A[i]];
      if((++mp[k])==1) s.insert(k);
      if(s.size()==1){
        x = *s.begin();
        if(x==1) res >?= i + 1;
        if(mp[x]==1) res >?= i + 1;
      }
      if(s.size()==2){
        it = s.begin();
        x = *(it++);
        y = *(it++);
        if(x==1 && mp[x]==1) res >?= i + 1;
        if(x+1==y && mp[y]==1) res >?= i + 1;
      }
    }
    return res;
  }
};

Current time: 2024年04月20日00時58分27秒
Last modified: 2019年11月03日19時31分10秒 (by laycrs)
Tags: Competitive_Programming_Incomplete LeetCode
トップページに戻る

Logged in as: unknown user (not login)

ログイン: