Questions tagged «array-manipulation»

通过使用和操纵数组来解决特定问题的竞赛。

19
敌对因子数
一些正整数的除数确实很讨厌彼此,并且他们不喜欢共享一个或多个公共数字。 这些整数称为敌对数数(HDN) 例子 Number 9566有4除数:(1, 2, 4783 and 9566 如您所见,其中没有两个共享相同的数字)。 因此,9566是一个ħ ostile d ivisor Ñ棕土 号码9567是不是HDN,因为它的除数(1, 3, 9, 1063, 3189, 9567)具有一些共同的数字。 这是前几个HDN 1,2,3,4,5,6,7,8,9,23,27,29,37,43,47,49,53,59,67,73,79,83,86,87,89,97,223,227,229,233,239,257,263,267,269,277,283,293,307,337... 任务 上面的列表继续,您的任务是找到第n个 HDN 输入值 n从1到的正整数4000 输出量 该nth HDN 测试用例 这是一些1索引测试用例。 请说明您在答案中使用的索引系统,以避免造成混淆。 input -> output 1 1 10 23 101 853 1012 26053 3098 66686 4000 85009 这是代码高尔夫球,因此以字节为单位的最低分数获胜。 …

23
您能停止再打牌再玩吗?
挑战: 输入:范围内的不同正整数的。[1,list-size][1,list-size][1, \text{list-size}] 输出:一个整数:列表被随机改组的次数。对于列表,这意味着将列表分为两半,并且将这两个半部分交织在一起(即,对列表进行[1,2,3,4,5,6,7,8,9,10]一次混码处理将导致[1,6,2,7,3,8,4,9,5,10],因此对于此挑战,输入[1,6,2,7,3,8,4,9,5,10]将导致1)。 挑战规则: 您可以假设列表只包含范围内的正整数(如果选择索引为0的输入列表,则为)。[1,list-size][1,list-size][1, \text{list-size}][0,list-size−1][0,list-size−1][0, \text{list-size}-1] 您可以假定所有输入列表都是有效的浅滩混排列表,或者是未混排的排序列表(在这种情况下,输出为0)。 您可以假设输入列表将至少包含三个值。 分步示例: 输入: [1,3,5,7,9,2,4,6,8] 对其进行重新整理就变成了:[1,5,9,4,8,3,7,2,6],因为每个偶数索引为0的项都首先出现[1, ,5, ,9, ,4, ,8],然后所有奇数索引为0的项都随之出现[ ,3, ,7, ,2, ,6, ]。 该列表尚未订购,因此我们继续: 重新整理列表变得:[1,9,8,7,6,5,4,3,2] 再变成:[1,8,6,4,2,9,7,5,3] 然后:[1,6,2,7,3,8,4,9,5] 最后:[1,2,3,4,5,6,7,8,9],这是一个有序列表,所以我们完成了重新整理。 我们对原始信号进行了[1,3,5,7,9,2,4,6,8]5次改组以达到[1,2,3,4,5,6,7,8,9],因此5在这种情况下,输出为。 一般规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能短的答案。 标准规则适用于具有默认I / O规则的答案,因此允许您使用STDIN / STDOUT,具有适当参数的函数/方法以及返回类型的完整程序。你的来电。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接(即TIO)。 另外,强烈建议为您的答案添加说明。 测试用例: Input Output [1,2,3] 0 [1,2,3,4,5] 0 [1,3,2] 1 [1,6,2,7,3,8,4,9,5,10] …

21
三个“ R”:反向,重新排序,重复
在用数字涂鸦时,我发现可以从数字列表中生成一个有趣的排列。如果您重复相同的排列足够多次,您将始终回到原始数组。让我们使用以下列表: [1, 2, 3, 4, 5] 举个例子 反转数组。现在我们的数组是 [5, 4, 3, 2, 1] 重新排序(交换)每对。我们的列表有2对:[5, 4]和[3, 2]。不幸的是,我们不能将它们组合1为一对,所以我们将其留给自己。交换每对后,新数组为: [4, 5, 2, 3, 1] 重复步骤1和2,直到返回到原始数组。以下是以下4个步骤: Step 2: Start: [4, 5, 2, 3, 1] Reversed: [1, 3, 2, 5, 4] Pairs Swapped: [3, 1, 5, 2, 4] Step 3: Start: [3, 1, 5, 2, …

30
2的幂和
挑战 给定一个整数输入x其中1 <= x <= 255,返回时总结给出了两种力量的结果x。 例子 给定输入: 86 您的程序应输出: 64 16 4 2 输入: 240 输出: 128 64 32 16 输入: 1 输出: 1 输入: 64 输出: 64 如果总和中没有确定的2的幂,则输出可能包含零。 例如,输入65可以输出0 64 0 0 0 0 0 1。 计分 这是代码高尔夫球,因此每种语言中最短的答案将获胜。
31 code-golf  binary  code-golf  sequence  integer  chess  code-golf  number  arithmetic  matrix  code-golf  code-golf  combinatorics  grid  set-partitions  code-golf  array-manipulation  graph-theory  code-golf  number  code-golf  string  decision-problem  code-golf  matrix  cellular-automata  3d  code-challenge  restricted-source  printable-ascii  code-golf  board-game  code-golf  geometry  grid  code-golf  word-puzzle  code-golf  matrix  sorting  code-golf  code-golf  string  decision-problem  code-golf  matrix  cellular-automata  code-golf  decision-problem  code-golf  math  number  arithmetic  restricted-source  code-golf  code-golf  number  integer  matrix  code-golf  date  code-golf  matrix  code-golf  sequence  combinatorics  chemistry  code-golf  array-manipulation  popularity-contest  code-golf  code-golf  natural-language  code-golf  number  integer  sorting  substitution  code-golf  string  number  date  encode  code-golf  decision-problem  code-golf  string  subsequence  code-golf  string  alphabet  code-golf 

20
法鲁洗牌数组
阿法鲁洗牌是经常使用的魔术到“洗牌”甲板的技术。要执行Faro随机播放,您首先将卡座切成相等的两半,然后将这两个半插入。例如 [1 2 3 4 5 6 7 8] 法鲁洗牌是 [1 5 2 6 3 7 4 8] 可以重复多次。有趣的是,如果重复此次数足够多,您将总是回到原始数组。例如: [1 2 3 4 5 6 7 8] [1 5 2 6 3 7 4 8] [1 3 5 7 2 4 6 8] [1 2 3 4 5 6 7 …
31 code-golf  permutations  card-games  code-golf  graphical-output  random  code-golf  image-processing  color  code-golf  primes  code-golf  math  arithmetic  combinatorics  decision-problem  code-golf  sequence  number-theory  binary  code-golf  number-theory  set-theory  code-golf  hashing  code-golf  game  card-games  code-golf  ascii-art  code-golf  arithmetic  array-manipulation  jelly  code-golf  string  array-manipulation  code-golf  sorting  code-challenge  code-golf  number  date  binary  code-golf  arithmetic  code-golf  math  number  linear-algebra  polynomials  code-golf  ascii-art  code-golf  grid  decision-problem  code-golf  string  combinatorics  code-golf  string  kolmogorov-complexity  arithmetic  date  code-golf  number  data-structures  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation 

30
确定数组的深度
您星期一晚上(或者世界另一半的星期二早上)的简单挑战。 您将得到一个嵌套的,可能是参差不齐的正整数数组作为输入: [1, [[2, 3, [[4], 5], 6, [7, 8]], 9, [10, [[[11]]]], 12, 13], 14] 您的任务是确定其深度,该深度是列表中任何整数的最大嵌套深度。在这种情况下,深度11就是6,这是最大的。 您可以假设所有数组都不为空。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 只要不对实际信息进行预处理,就可以采用任何支持非矩形数组(具有不同深度的嵌套数组)的便捷列表或字符串格式进行输入。 您不得使用任何与数组形状有关的内置程序(包括解决此难题的内置程序,这些内置程序可为您提供嵌套数组的尺寸)。唯一的例外是获取数组的长度。 适用标准代码高尔夫球规则。 测试用例 [1] -> 1 [1, 2, 3] -> 1 [[1, 2, 3]] -> 2 [3, [3, [3], 3], 3] -> 3 [[[[1], 2], [3, [4]]]] -> 4 [1, …

30
交换两个给定的索引
给定一个正整数数组和两个不同的有效索引,则返回该数组,其中对应于两个索引的两个元素被交换。 您可以选择使用0索引或1索引,但是下面的测试用例将使用0索引。 array m n output [1,2,3,4] 0 1 [2,1,3,4] [5,8,9] 0 2 [9,8,5] [11,13,15,3] 1 2 [11,15,13,3] [11,13,15,3] 2 1 [11,15,13,3] [11,15,15,3] 2 1 [11,15,15,3] 这是代码高尔夫球。以字节为单位的最短答案将获胜。有标准漏洞。

30
删除前导和尾随零
给定一个仅包含非负整数的非空列表/数组,如下所示: [0, 0, 0, 8, 1, 4, 3, 5, 6, 4, 1, 2, 0, 0, 0, 0] 输出已删除尾随和前导零的列表。 输出为: [8, 1, 4, 3, 5, 6, 4, 1, 2] 其他一些测试用例: [0, 4, 1, 2, 0, 1, 2, 4, 0] > [4, 1, 2, 0, 1, 2, 4] [0, 0, 0, 0, …

30
从角落重建矩形阵列
我曾经有一个美丽的矩形阵列。这是非常对称的,但是不幸的是它已经崩溃了,现在我只有左上角。您的任务将是重建原始阵列。 您的程序将收到一个二维整数数组。为了便于解析,您可以假定它们都在1到9之间。您的任务是反转数组的列,行和行和行,将结果角拼接在一起,然后返回结果数组。 您可以假设数组尺寸至少为1x1。 测试用例: Input: 1 2 3 4 5 6 Output: 1 2 3 3 2 1 4 5 6 6 5 4 4 5 6 6 5 4 1 2 3 3 2 1 Input: 1 Output: 1 1 1 1 Input: 9 9 9 Output: 9 9 …

8
可视化合并排序
合并排序是一种排序算法,其工作原理是将给定列表分为两半,对两个较小的列表进行递归排序,然后将它们合并回一个排序的列表。递归的基本情况是到达一个单例列表,该列表无法进一步拆分,但已按定义进行了排序。 [1,7,6,3,3,2,5]可以通过以下方式可视化列表中算法的执行: [1,7,6,3,3,2,5] / \ split [1,7,6,3] [3,2,5] / \ / \ split [1,7] [6,3] [3,2] [5] / \ / \ / \ | split [1] [7] [6] [3] [3] [2] [5] \ / \ / \ / | merge [1,7] [3,6] [2,3] [5] \ / \ / merge [1,3,6,7] …

15
我要压碎阵列有多难?
让我们定义粉碎数字数组的过程。迷恋我们从左到右读取数组。如果在某一点上我们连续遇到两个相同的元素,则将第一个删除,将第二个加倍。例如,这是粉碎以下数组的过程 [5,2,2,3] ^ [5,2,2,3] ^ [5,2,2,3] ^ [5,4,3] ^ [5,4,3] ^ 相同的元件可以折叠多次,例如[1,1,2]成为[4]粉碎时。 当粉碎该阵列的过程没有改变数组时,我们将其称为不可粉碎的阵列。例如[1,2,3]仍然[1,2,3]被压碎之后。 您的任务是获取一个阵列,并确定使其无法破碎所需的破碎次数。您只需要支持0到2 32 -1范围内的整数 这是代码高尔夫球,因此答案将以字节计分,而字节数越少越好。 测试用例 [1] -> 0 [1,1] -> 1 [2,1,1] -> 2 [4,2,1,1] -> 3 [2,2,2,1,1] -> 3 [0,0,0,0] -> 1 [4,0,0,0,4] -> 1 [4,0,0,0,0,4] -> 1 [] -> 0

18
N维身份“矩阵”
给定一个正整数n,输出- N维标识“ matrix”,这是其中索引的所有分量均相等的N^N数组1,0否则为相等。N^N表示N个N个N个... 1 -> [1] 2 -> [[1,0],[0,1]] 3 -> [[[1,0,0],[0,0,0],[0,0,0]],[[0,0,0],[0,1,0],[0,0,0]],[[0,0,0],[0,0,0],[0,0,1]]] 4 -> [[[[1,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]],[[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,1,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]],[[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,1,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]],[[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,1]]]] 例如,如果a是4维同一性“基质”,然后用仅条目1会是a[0][0][0][0],a[1][1][1][1],a[2][2][2][2],和a[3][3][3][3]。 这是代码高尔夫球。以字节为单位的最短答案将获胜。有标准漏洞。

21
查找最接近的大数
任务 给定任何整数数组,例如: [-1,476,578,27,0,1,-1,1,2] 和该数组的索引(此示例使用基于0的索引,尽管您也可以使用基于1的索引。): index = 5 v [-1,476,578,27,0,1,-1,1,2] 然后返回大于该索引处元素的最接近数字。在该示例中,大于1的最接近数字是27(相距2个索引)。 index = 5 v [-1,476,578,27,0,1,-1,1,2] ^ Nearest greater number Output = 27 假设条件 最近的不包括包装。 永远不会给程序一个长度为1的数组(例如[55])。 您将假定总有一个大于给定元素的数字。 如果等距离处的元素大2个数字,则可以返回任意一个。 I / O对 Input: Index = 45 Array = [69, 43, 89, 93, 62, 25, 4, 11, 115, 87, 174, 60, 84, 58, …

4
旋转2D矩阵
假设我有以下(2D)矩阵: [[1, 2, 3, 4 ], [5, 6, 7, 8 ], [9, 10, 11, 12], [13, 14, 15, 16]] 旋转矩阵逆时针 R倍(未以90个增量,只是通过每次1号), 1 2 3 4 2 3 4 8 3 4 8 12 5 6 7 8 --> 1 7 11 12 --> 2 11 10 16 9 10 11 …

21
列总和
给定非空数字行的非空列表,请计算按列和,这是另一个具有最长输入行长度的列表。输出列表的第一个条目是输入行的所有第一个整数的总和,第二个是所有第二个元素的总和(如果有)等。我认为以下示例将对此进行更好的解释: Input: {[1,2,3,4],[1],[5,2,3],[6,1]} Computation: [1,2,3,4] + . . . [1]. . . + + + . [5,2,3]. + + . . [6,1]. . = = = = Output: [13,5,6,4] 测试用例 {[0]} -> 0 {[1],[1,1,1,1]} -> [2,1,1,1] {[1],[1,2],[1,2,3],[1,2,3,4]} -> [4,6,6,4] {[1,6,2,-6],[-1,2,3,5]} -> [0,8,5,-1]

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.