440. 字典序的第K小數字
阿新 • • 發佈:2021-12-09
給定整數n和k,找到1到n中字典序第k小的數字。
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/k-th-smallest-in-lexicographical-order
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
心之所向,素履以往 生如逆旅,一葦以航class Solution { private long getNodes(long prefix, int n) { long nextPrefix = prefix + 1; long ret = 0; while (prefix <= n) { ret += Math.min(n - prefix + 1, nextPrefix - prefix); prefix *= 10; nextPrefix *= 10; } return ret; } public int findKthNumber(int n, int k) { long prefix = 1; while (k != 1) { long nodes = getNodes(prefix, n); if (nodes >= k) { prefix *= 10; k--; } else { prefix += 1; k -= nodes; } } return (int) prefix; } }