zoukankan      html  css  js  c++  java
  • 1291. 顺次数

    1. 题目

    我们定义「顺次数」为:每一位上的数字都比前一位上的数字大 1 的整数。

    请你返回由 [low, high] 范围内所有顺次数组成的 有序 列表(从小到大排序)。

    提示

    • 10 <= low <= high <= 10^9

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/sequential-digits
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    2. 示例

    1 输出:low = 100, high = 300
    2 输出:[123,234]

    3. 题解

    注意下本文的提示,范围最大为9位数,所以直接枚举即可。采用的方法是滑动窗口;

    定义最长串:String s = "123456789";

    然后以最小长度到最大长长度在最长串上截取;

    4. Code

    public class SequentialDigitsA {
        public List<Integer> sequentialDigits(int low, int high) {
            List<Integer> ans = new ArrayList<>();
            String s = "123456789";
            int min_len = String.valueOf(low).length(), max_len = String.valueOf(high).length();
            while (min_len <= max_len) {
                int temp = 0;
                for (int i = 0; i <= 9 - min_len; i++) {
                    temp = Integer.parseInt(s.substring(i, i + min_len));
                    if (temp < low) {
                        continue;
                    } else if (temp >high) {
                        break;
                    } else {
                        ans.add(temp);
                    }
                }
                min_len++;
            }
            return ans;
        }
    
        public static void main(String[] args) {
            int low = 1000, high = 13000;
            System.out.println(new SequentialDigitsA().sequentialDigits(low, high));
        }
    }
  • 相关阅读:
    dljd_008_jdbc中调用Statement的execute()执行DQL,DDL,DML
    dljd_007_jdbc编程中的statement执行DML/DDL
    【数据结构】可持久化线段树
    【数据结构】可持久化并查集
    【图论】TarjanLCA算法
    【图论】KruskalMST算法
    【基础】标准模板
    【数学】位运算
    【数据结构】Trie
    【数据结构】线段树(名次树)
  • 原文地址:https://www.cnblogs.com/haifwu/p/14807583.html
Copyright © 2011-2022 走看看