[LeetCode]386. Lexicographical Numbers

    xiaoxiao2021-03-25  86

    https://leetcode.com/problems/lexicographical-numbers/#/description

    字典排序给定数字

    找下一个数,能加零加零,能自增自增,否则找从后往前第一位不是9的,将该位自增一个数

    public class Solution { public List<Integer> lexicalOrder(int n) { List<Integer> list = new LinkedList(); int cur = 1; for (int i = 1; i <= n; i++) { list.add(cur); if (cur * 10 <= n) { cur *= 10; } else if (cur % 10 != 9 && cur + 1 <= n) { cur++; } else { // 先除10再取余数!!else if已经表明了要么最后一位是9要么cur到达最大值。 // 所以要找到的是前面的一位不是9的,因此除10 while ((cur / 10) % 10 == 9) { cur /= 10; } cur = (cur / 10) + 1; } } return list; } }

    转载请注明原文地址: https://ju.6miu.com/read-40482.html

    最新回复(0)