LeetCode[967]连续差相同的数字

Posted left4back

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode[967]连续差相同的数字相关的知识,希望对你有一定的参考价值。

这题的标签有问题。。我本来是想熟悉一下dp的,然而这道题似乎不用dp更简单一点,现在反而是递归越用越熟练。

前面递归已经降了很多了,这题只要知道是用递归,后面就很简单了,不再赘述。如有更好的方法或任何问题,都欢迎指出。

class Solution {
public:
    vector<int> numsSameConsecDiff(int N, int K) {
        int startdigit = (N == 1) ? 0: 1;
        vector<int> ans;
        while (startdigit < 10) {
            vector<int> subans = recursion(startdigit, N-1, K);
            ans.insert(ans.end(), subans.begin(), subans.end());
            ++startdigit;
        }
        return ans;
    }
    
    vector<int> recursion(int root, int N, int K) {
        vector<int> sub1;
        if (N == 0) {
            sub1.push_back(root);
            return sub1;
        }
        int lastdigit = root%10;
        int nextdigit = lastdigit + K;
        if (nextdigit < 10) {
            sub1 = recursion(root*10+nextdigit, N-1, K);
        }
        vector<int> sub2;
        if (K != 0) {
            nextdigit = lastdigit - K;
            if (nextdigit >= 0) {
                sub2 = recursion(root*10+nextdigit, N-1, K);
                sub1.insert(sub1.end(), sub2.begin(), sub2.end());
            }
        }
        return sub1;
    }
};

 

以上是关于LeetCode[967]连续差相同的数字的主要内容,如果未能解决你的问题,请参考以下文章

967.连续差相同的数字(使用JavaScript解答,迭代 BFS广度优先算法回顾)

Leetcode 128 最长连续序列

leetcode 525.连续数组

leetcode 1438. 绝对差不超过限制的最长连续子数组----双指针篇3,滑动窗口篇2

《LeetCode之每日一题》:77.绝对差不超过限制的最长连续子数组

[leetcode] No.1438 绝对差不超过限制的最长连续子数组