Leetcode 440. Le Kième nombre décimal dans l'ordre du dictionnaire

sujet

Insérer la description de l'image ici
Leetcode 440. Le Kième nombre décimal dans l'ordre du dictionnaire

Code (10.2 premier pinceau pour voir l'analyse)

La file d'attente prioritaire pour le premier vidage a expiré.

Ordre lexicographique

class Solution {
    
    
public:
    int findKthNumber(int n, int k) {
    
    
        int curr = 1;
        k--;
        while(k) {
    
    
            int steps = getSteps(curr, n);
            if(steps <= k) {
    
    
                k -= steps;
                curr++;
            } else {
    
    
                curr = curr*10;
                k--;
            }
        }
        return curr;
    }
    int getSteps(int curr, long n) {
    
    
        int steps = 0;
        long first = curr, last = curr;
        while(first <= n) {
    
    
            steps += min(last, n) - first + 1;
            first = first * 10;
            last = last * 10 + 9;
        }
        return steps;
    }
};

Je suppose que tu aimes

Origine blog.csdn.net/weixin_51322383/article/details/133494205
conseillé
Classement