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 1438. 绝对差不超过限制的最长连续子数组----双指针篇3,滑动窗口篇2