LeetCode问题图解-3

作者: billliu_0d62 | 来源:发表于2017-09-17 17:52 被阅读87次

本文准备讲解1个算法编程问题, 这个算法编程问题来自LeetCode平台。不了解.LeetCode平台的读者可以阅读笔者文章(在线编程平台推荐-LeetCode)。问题的英文版本描述如下:

dungeon game

  地牢游戏的解决算法这样考虑:K 只能向右移动或者向下移动,最后到达P位置。所以K需要向右移动或者向下移动的步数是确定的。以题目例子为目标,K需要到达P位置;需要向右移动2次和向下移动2次。将向右移动标为A,将向左移动标为B;所有可能的途径都可以计算得到。比如路径 AABB,就成为1条可能的路径。

  如何得到2个A和2个B组成的所有可能路径呢?以下为得出所有路径的算法:

 1 路径的起点为:AA

 2 将1个B加入到 AA 中,可以得到的所有可能路径为:BAA ABA AAB

3再将1个B加入: 

(BAA): BBAA BABA BAAB

(ABA)  BABA ABBA ABAB

(AAB)  BAAB ABAB  AABB

将所有重复选项去除,就得到所有的路径:BBAA BABA BAAB ABBA ABAB AABB

  这是1种变化的求出所有排列可能的算法,对应某些状况非常有效。

  算法的框架如下:

算法的框架

算法的核心函数如下:

核心的函数

 以上算法未发现有什么错误,但在 LeetCode 平台上对应少量测试用例运转会超时。标准的题目解法用到特殊的数学处理方案;该数学处理方案可能只对该题会比较有效。标准题目算法如下:

标准的算法

相关文章

  • LeetCode问题图解-3

    本文准备讲解1个算法编程问题, 这个算法编程问题来自LeetCode平台。不了解.LeetCode平台的读者可以阅...

  • LeetCode问题图解-7

    本文准备讲解1个简单的算法编程问题, 这个算法编程问题来自LeetCode平台。不了解.LeetCode平台的读者...

  • LeetCode问题图解-6

    本文准备讲解1个简单的算法编程问题, 这个算法编程问题来自LintCode平台。不了解.LintCode平台的读者...

  • LeetCode问题图解-2

    本文准备讲解1个算法编程问题, 这个算法编程问题来自LeetCode平台和LintCode平台。不了解.LeetC...

  • LeetCode问题图解-4

    本文准备讲解1个算法编程问题, 这个算法编程问题来自LeetCode平台。不了解.LeetCode平台的读者可以阅...

  • LeetCode问题图解-5

    本文准备讲解1个算法编程问题, 这个算法编程问题来自LeetCode平台。不了解.LeetCode平台的读者可以阅...

  • LeetCode问题图解-8

    本文准备讲解1个算法编程问题, 这个算法编程问题来自LeetCode平台。不了解.LeetCode平台的读者可以阅...

  • LeetCode问题图解-1

    本文准备讲解1个算法编程问题, 这个算法编程问题来自LeetCode平台。不了解.LeetCode平台的读者可以...

  • Letter Combinations of a Phone N

    标签: C++ 算法 LeetCode 字符串 每日算法——leetcode系列 问题 3Sum Closest ...

  • 53最大子序和-152乘积最大子数组

    图解[https://leetcode-cn.com/problems/maximum-product-subar...

网友评论

    本文标题:LeetCode问题图解-3

    本文链接:https://www.haomeiwen.com/subject/ewhmsxtx.html