classSolution:def__init__(self,n:int,blacklist:List[int]):self.k=n-len(blacklist)self.d={}i=self.kblack=set(blacklist)forbinblacklist:ifb<self.k:whileiinblack:i+=1self.d[b]=ii+=1defpick(self)->int:x=randrange(self.k)returnself.d.get(x,x)# Your Solution object will be instantiated and called as such:# obj = Solution(n, blacklist)# param_1 = obj.pick()
classSolution{privateMap<Integer,Integer>d=newHashMap<>();privateRandomrand=newRandom();privateintk;publicSolution(intn,int[]blacklist){k=n-blacklist.length;inti=k;Set<Integer>black=newHashSet<>();for(intb:blacklist){black.add(b);}for(intb:blacklist){if(b<k){while(black.contains(i)){++i;}d.put(b,i++);}}}publicintpick(){intx=rand.nextInt(k);returnd.getOrDefault(x,x);}}/** * Your Solution object will be instantiated and called as such: * Solution obj = new Solution(n, blacklist); * int param_1 = obj.pick(); */
classSolution{public:unordered_map<int,int>d;intk;Solution(intn,vector<int>&blacklist){k=n-blacklist.size();inti=k;unordered_set<int>black(blacklist.begin(),blacklist.end());for(int&b:blacklist){if(b<k){while(black.count(i))++i;d[b]=i++;}}}intpick(){intx=rand()%k;returnd.count(x)?d[x]:x;}};/** * Your Solution object will be instantiated and called as such: * Solution* obj = new Solution(n, blacklist); * int param_1 = obj->pick(); */
typeSolutionstruct{dmap[int]intkint}funcConstructor(nint,blacklist[]int)Solution{k:=n-len(blacklist)i:=kblack:=map[int]bool{}for_,b:=rangeblacklist{black[b]=true}d:=map[int]int{}for_,b:=rangeblacklist{ifb<k{forblack[i]{i++}d[b]=ii++}}returnSolution{d,k}}func(this*Solution)Pick()int{x:=rand.Intn(this.k)ifv,ok:=this.d[x];ok{returnv}returnx}/** * Your Solution object will be instantiated and called as such: * obj := Constructor(n, blacklist); * param_1 := obj.Pick(); */