classSolution{public:intfindKthNumber(intm,intn,intk){intl=1;intr=m*n;autonumsNoGreaterThan=[&](inttarget){intcount=0;// For each row i, count # of numbers <= targetfor(inti=1;i<=m;++i)count+=min(target/i,n);returncount;};while(l<r){constintmid=(l+r)/2;if(numsNoGreaterThan(mid)>=k)r=mid;elsel=mid+1;}returnl;}};
classSolution{publicintfindKthNumber(intm,intn,intk){intl=1;intr=m*n;while(l<r){finalintmid=(l+r)/2;if(numsNoGreaterThan(m,n,mid)>=k)r=mid;elsel=mid+1;}returnl;}privateintnumsNoGreaterThan(intm,intn,inttarget){intcount=0;// For each row i, count # of numbers <= targetfor(inti=1;i<=m;++i)count+=Math.min(target/i,n);returncount;}}