21得票4回答
创建具有一定数量位设置的多个数字

问题 我需要创建32位数字(有符号或无符号都可以,因为最高位永远不会被设置),每个数字必须具有给定数量的位设置。 朴素解决方案 最简单的解决方案当然是从零开始。在循环中,现在逐一增加数字,计算位数,如果计数具有所需值,则将该数字存储到列表中,否则循环只是重复。如果找到足够的数字,则停止循环。当...

21得票11回答
在SQL Server中生成排列的最优雅方法

给定以下表格: Index | Element --------------- 1 | A 2 | B 3 | C 4 | D 我们希望使用元素生成所有可能的排列(不重复)。最终结果如下(跳过一些行): Results ---...

21得票9回答
给定一个二叉搜索树及其根节点,打印出所有产生相同BST的节点序列。

给定一个二叉搜索树,找到从根节点开始的所有节点序列,它们会生成相同的二叉搜索树。 给定一个BST,例如: 3 / \ 1 5 答案应该是3,1,5和3,5,1。 另一个例子 5 / \ 4 7 / / \ 1 ...

21得票5回答
恰好具有k个逆序对的n元排列的数量

我正在尝试高效地解决SPOJ Problem 64: Permutations。 设A = [a1,a2,...,an]是整数1,2,...,n的一个排列。若存在一对下标(i,j),其中1≤i≤j≤n且ai>aj,则称(i,j)是排列A的一个逆序。给定正整数n>0和非负整数k,...

21得票9回答
应用置换算法的常数内存空间实现方法

我看到这个问题是一个编程面试书中的问题,这里我简化了一下这个问题。 假设你有一个长度为 n 的数组 A,同时你还有一个长度为 n 的置换数组 P。你的方法将返回一个数组,其中 A 的元素将按照在 P 中指定的索引顺序出现。 快速示例:你的方法接受 A = [a, b, c, d, e] 和...

21得票3回答
std::next_permutation的摊销复杂度是什么?

我刚读了关于std::next_permutation函数时间复杂度的另一个问题(链接),虽然回答中已经说明了该算法的时间复杂度为O(n),但我觉得该算法可能有一种良好的平摊分析方法,可以显示更低的复杂度。 有人知道这样的分析吗?

21得票6回答
在给定字符串的排列排序列表中找到给定排列的索引

我们有一个字符串和该字符串的一个排列。 例如,输入字符串为sandeep,其排列为psdenae。 找出给定排列在原始字符串的所有排列按字典序排序后的位置。

20得票3回答
打乱列表,确保没有任何一个项目保持原来的位置。

我想打乱一个具有唯一元素的列表,但不是完全随机的打乱。我需要确保打乱后的列表中没有任何元素与原始列表中的位置相同。因此,如果原始列表是(A,B,C,D,E),这个结果是可以的:(C,D,B,E,A),但这个结果不行:(C,E,A,D,B),因为“D”仍然是第四个项。该列表最多会有七个项目。极端...

20得票4回答
火炬(Torch):如何通过其行来随机排列张量?

我目前正在使用torch实现对一些输入数据进行随机洗牌(在这种情况下是按行,即第一维),但由于我刚接触torch,所以我有些难以理解置换的工作原理。 以下代码应该是用来对数据进行洗牌的:if argshuffle then local perm = torch.randperm(s...

20得票6回答
筛选一个集合中匹配字符串排列的元素

我想使用 itertools.permutations() 来返回 字符串 的所有排列,并仅返回那些是单词集合的成员。import itertools def permutations_in_dict(string, words): ''' Parameters -...