dengxinyi пре 6 година
родитељ
комит
2b88160724
1 измењених фајлова са 24 додато и 0 уклоњено
  1. 24 0
      hard/440.k-th-smallest-in-lexicographical-order.java

+ 24 - 0
hard/440.k-th-smallest-in-lexicographical-order.java

@@ -0,0 +1,24 @@
+class Solution {
+    public int findKthNumber(int n, int k) {
+        int cur = 1;
+        k--;
+        // Ten-ary tree
+        while (0 < k) {
+            int cnt = 0;
+            long lo = cur, hi = cur + 1;
+            while (lo <= n) {
+                cnt += (int) (Math.min(hi, n + 1) - lo);
+                lo *= 10;
+                hi *= 10;
+            } // Count the number of children level by level
+            if (cnt <= k) {
+                cur++; // Go to next child
+                k -= cnt;
+            } else {
+                cur *= 10; // Go to next level
+                k--;
+            }
+        }
+        return cur;
+    }
+}