classExamTracker:def__init__(self):self.times=[0]self.pre=[0]defrecord(self,time:int,score:int)->None:self.times.append(time)self.pre.append(self.pre[-1]+score)deftotalScore(self,startTime:int,endTime:int)->int:l=bisect_left(self.times,startTime)-1r=bisect_left(self.times,endTime+1)-1returnself.pre[r]-self.pre[l]# Your ExamTracker object will be instantiated and called as such:# obj = ExamTracker()# obj.record(time,score)# param_2 = obj.totalScore(startTime,endTime)
classExamTracker{privateList<Integer>times=newArrayList<>();privateList<Long>pre=newArrayList<>();publicExamTracker(){times.add(0);pre.add(0L);}publicvoidrecord(inttime,intscore){times.add(time);pre.add(pre.getLast()+score);}publiclongtotalScore(intstartTime,intendTime){intl=binarySearch(startTime)-1;intr=binarySearch(endTime+1)-1;returnpre.get(r)-pre.get(l);}privateintbinarySearch(intx){intl=0,r=times.size();while(l<r){intmid=(l+r)>>1;if(times.get(mid)>=x){r=mid;}else{l=mid+1;}}returnl;}}/** * Your ExamTracker object will be instantiated and called as such: * ExamTracker obj = new ExamTracker(); * obj.record(time,score); * long param_2 = obj.totalScore(startTime,endTime); */
classExamTracker{public:ExamTracker(){times.push_back(0);pre.push_back(0LL);}voidrecord(inttime,intscore){times.push_back(time);pre.push_back(pre.back()+score);}longlongtotalScore(intstartTime,intendTime){intl=lower_bound(times.begin(),times.end(),startTime)-times.begin()-1;intr=lower_bound(times.begin(),times.end(),endTime+1)-times.begin()-1;returnpre[r]-pre[l];}private:vector<int>times;vector<longlong>pre;};/** * Your ExamTracker object will be instantiated and called as such: * ExamTracker* obj = new ExamTracker(); * obj->record(time,score); * long long param_2 = obj->totalScore(startTime,endTime); */
typeExamTrackerstruct{times[]intpre[]int64}funcConstructor()ExamTracker{returnExamTracker{[]int{0},[]int64{int64(0)}}}func(this*ExamTracker)Record(timeint,scoreint){this.times=append(this.times,time)this.pre=append(this.pre,this.pre[len(this.pre)-1]+int64(score))}func(this*ExamTracker)TotalScore(startTimeint,endTimeint)int64{l:=sort.SearchInts(this.times,startTime)-1r:=sort.SearchInts(this.times,endTime+1)-1returnthis.pre[r]-this.pre[l]}/** * Your ExamTracker object will be instantiated and called as such: * obj := Constructor(); * obj.Record(time,score); * param_2 := obj.TotalScore(startTime,endTime); */
1 2 3 4 5 6 7 8 91011121314151617181920212223
classExamTracker{privatetimes:number[]=[0];privatepre:number[]=[0];constructor(){}record(time:number,score:number):void{this.times.push(time);this.pre.push(this.pre.at(-1)!+score);}totalScore(startTime:number,endTime:number):number{constl=_.sortedIndex(this.times,startTime)-1;constr=_.sortedIndex(this.times,endTime+1)-1;returnthis.pre[r]-this.pre[l];}}/** * Your ExamTracker object will be instantiated and called as such: * var obj = new ExamTracker() * obj.record(time,score) * var param_2 = obj.totalScore(startTime,endTime) */