给定正整数 n 和 k ,请你找出 [1,n] 内的字典序第 k 小的数。
数据范围:
public int findKth (int n, int k) { // write code here int cur = 1; k--; while(k > 0){ int steps = getSteps(cur,n); if(steps <= k){ k -= steps; cur++; }else{ cur = cur*10; k--; } } return cur; } private int getSteps(int cur, long n){ int step = 0; long first = cur; long last = cur; while(first <= n){ step += Math.min(last,n)-first+1; first = first*10; last = last*10+9; } return step; }