backtracking

    2热度

    2回答

    我注意到很多的回溯问题有解决的方法有两种。 一个是返回“无论是必需的名单”,VS,贯穿每个呼叫的“结果”,并追加到它。 返回的缺点是什么?(它是更少的内存/时间效率)? 示例:要打印所有可能的排列,与第二个排序相比,这种解决方案的效率如何? 对不起,如果这不是合适的论坛问这个问题,我找不到更好的地方。 public List<List<Integer>> perm(int[] nums){

    0热度

    1回答

    我已经在python中建立了一个数独求解器回溯算法,只是为了找出它不起作用。我看了一下互联网上的例子,发现与我的情况相比,他们所做的只有一件事情不同。我相应地更改了我的代码,现在我的程序正常工作。 这里是工作代码: sudoku = [] next_empty_pos = [0,0] # Check if the number is already used in the given row

    0热度

    1回答

    我的问题涉及到这个问题https://leetcode.com/problems/combination-sum-iii/discuss/和所有回溯问题。 我的问题是:为什么我的代码(与其他人的答案非常相似)总是比他们的运行时间更长? def combinationSum3(self, k, n): """ :type k: int how many number :

    1热度

    1回答

    我最近出现了一个求职面试,当时我被问到流行的RAT IN A MAEE问题,其中有一个由2维数组表示的迷宫,分别包含0和1的开放路径和墙,我们必须打印最短路径。 我使用回溯解决了问题,并且还打印了所有可能的路径。 但随后采访者提高了韧性水平,并要求我用一种新的条件来解决同一个问题,在这种情况下,老鼠可以绊倒“K”数量的墙,K由用户输入。 现在我尝试了很多,但无法弄清楚如果跳闸K墙被允许,如何找到最

    5热度

    3回答

    input: max_weight = 550 n = 4 x_i = [120, 175, 250, 150] output: 2 // [[250, 175, 120], [150]] 我的初步印象是,这看起来非常相似,动态规划硬币找零/背包问题,但它不是硬币改变(这会要求最少数量的权重来确定一个数量),而不是背包(权重没有值,它就像我可以有超过1个背包)。 这个问题是否有一

    1热度

    1回答

    我在实现函数中的回溯时遇到问题,我觉得我只是需要一点点推动。我有一个代码打架的问题,我将链接here 你需要爬上一个有n个台阶的楼梯,并且你决定通过跳上台阶来获得一些额外的锻炼。一次跳跃最多可以覆盖k个步骤。返回您可能需要爬上楼梯的所有可能的跳跃顺序,排序。 对于n = 4,K = 2,输出应该是: climbingStaircase(n, k) = [[1, 1, 1, 1], [1, 1, 2

    -1热度

    2回答

    给出的是三个容器具有不同容量(以升): 答:11 B:8 C:5 的问题是如何许多可能性在那里分配13升对他们? 我试图通过列举他们所有的系统性蛮力,并得出了51种可能性的结果。 有没有蛮力的另一种方式?而且我的解决方案是否正确? 在此先感谢! :d

    -5热度

    3回答

    #include <iostream> using namespace std; //defining 9X9 grid. int a[9][9] ={{0,0,3,0,9,2,6,0,0}, {1,0,0,3,0,0,8,0,0}, {0,0,5,0,1,0,0,4,0}, {0,3,0,0,0,0,2,5,8}, {2

    0热度

    1回答

    问题描述: 返回数组的所有组合。例如有一个数组[1,2,3],其结果是: [] [1] [2] [3] [1, 2] [1, 3] [2, 3] [1, 2, 3] 是的我知道有很多方法可以解决这个问题。但我正试图用回溯算法来解决它。下面是我的代码: def p(arr): ret = [] #using visited boolean array to avoid

    0热度

    1回答

    This problem只是重申hackerrank密码破解超时是这样的:给定一串字符串和目标字符串,什么从给定字符串的所有组合可以结合在一起,以形成目标字符串和不重复的。 例如 串:我们做什么,我们一定要,因为我们可以 目标:wedowhatwemustbecausewecan 输出:我们做什么,我们必须,因为我们可以 方法我带是从目标中删除每个更长的单词,直到目标变为空。如果目标变为空,那么只