classSolution{public:Solution(intn_rows,intn_cols):rows(n_rows),cols(n_cols),total(n_rows*n_cols){}vector<int>flip(){// All candidates are used outif(used.size()==total)return{};intindex=rand()%total;while(used.count(index))index=++index%total;used.insert(index);return{index/cols,index%cols};}voidreset(){used={};}private:unordered_set<int>used;introws;intcols;inttotal;};
classSolution{publicSolution(intn_rows,intn_cols){this.rows=n_rows;this.cols=n_cols;this.total=n_rows*n_cols;}publicint[]flip(){// All candidates are used outif(used.size()==total)returnnewint[]{};intindex=newRandom().nextInt(total);while(used.contains(index))index=++index%total;used.add(index);returnnewint[]{index/cols,index%cols};}publicvoidreset(){used.clear();}privateSet<Integer>used=newHashSet<>();privateintrows;privateintcols;privateinttotal;}