Questions tagged «array-manipulation»

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

30
挑战数组#1:交替数组
交替阵列 一个交替阵列是其中两个(不一定不同)值交替的任何长度的列表。也就是说,所有偶数索引项都相等,所有奇数索引项都相等。 您的任务是编写一个程序或函数,当给出正整数列表时,如果该程序或函数truthy是交替的,falsy则输出/返回。 这是代码高尔夫球,因此最短的代码(以字节为单位)获胜! 边缘案例: [] -> True [1] -> True [1,1] -> True [1,2,1] -> True 其他测试用例: [1,2,1,2] -> True [3,4,3] -> True [10,5,10,5,10] -> True [10,11] -> True [9,9,9,9,9] -> True [5,4,3,5,4,3] -> False [3,2,1,2,1,2] -> False [1,2,1,2,1,1,2] -> False [2,2,3,3] -> False [2,3,3,2] -> False 例 这是一个示例,您可以使用Python …

30
天哪,吉萨高尔夫!
“吉萨数”(俗称“ 蒂米数”)是指数字代表金字塔的任何数字(A134810)。例如,“ 12321”是一个吉萨数字,因为它可以像这样可视化: 3 2 2 1 1 但是,“ 123321”之类的字符不是吉萨币,因为金字塔的顶部有两位数字 33 2 2 1 1 换句话说,如果满足以下所有条件,则数字为吉萨数: 它的位数是奇数,中间的数字是最大的 它是回文的(相同的向前或向后读取),并且 数字的前半部分严格增加一个。(由于必须是回文,这意味着数字的后半部分必须严格减少一位) 您必须编写一个采用正整数作为输入的完整程序或函数,并确定它是否为吉萨数。您可以将输入作为字符串或数字。如果它是吉萨数,则输出真实值。否则,将产生虚假的值。 共有45个吉萨数字,因此这些输入中的任何一个都应产生真实值: 1 2 3 4 5 6 7 8 9 121 232 343 454 565 676 787 898 12321 23432 34543 45654 56765 67876 78987 1234321 2345432 3456543 4567654 5678765 …

22
删除每N个N
任务 在此挑战中,您的输入是一个非空的正整数列表,以您的语言的本机格式给出。您的输出是相同列表,格式相同,但删除了一些元素。您应删除的每次出现1,第二次出现的第二次出现2,第三次出现的所有第三次3,依此类推。通常,对于每个正整数N,您应从列表中删除N第一个出现的事件。NN 例 考虑输入清单 [3,2,6,1,1,6,2,3,2,6,6,6,6,1,6,6,3,3,7,2] 首先,我们删除每次出现的1: [3,2,6, 6,2,3,2,6,6,6,6, 6,6,3,3,7,2] 然后每秒出现一次2: [3,2,6, 6, 3,2,6,6,6,6, 6,6,3,3,7 ] 然后每三出现一次3: [3,2,6, 6, 3,2,6,6,6,6, 6,6, 3,7 ] 数字4和5不会出现在输入中,因此可以跳过它们。接下来,我们删除第六次出现的6: [3,2,6, 6, 3,2,6,6,6, 6,6, 3,7 ] 只会出现一次7,因此也可以跳过。因此正确的输出是 [3,2,6,6,3,2,6,6,6,6,6,3,7] 规则和计分 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 [1] -> [] [2] -> [2] [1,1,1] -> [] [2,2,2] -> [2,2] [1,1,2,2,2,3,3,3,3] -> [2,2,3,3,3] [1,2,3,1,2,3,1,2,3,1,2,3] …

30
作弊多项选择测试
介绍 在学习期间,我试图提出几种欺骗多选测试的方法。它基本上是多项选择答案的压缩版本。该方法如下: 测试答案: BCAABABA 这些可以转换为3个不同的数组,如果当前字母是答案,则表示true或false: B C A A B A B A A: [0, 0, 1, 1, 0, 1, 0, 1] B: [1, 0, 0, 0, 1, 0, 1, 0] C: [0, 1, 0, 0, 0, 0, 0, 0] 将这些数字解释为二进制会压缩很多。但这实际上可以进一步压缩。如果知道A和B的位置,则不需要C的位置。这可以通过按位NOT运算符完成: A: [0, 0, 1, 1, 0, 1, 0, 1] …

30
掩盖列表中的零
受到这个SO问题的启发 作为输入,您将得到一个非空的整数列表,其中第一个值保证为非零。要构造输出,请从列表的开头开始,沿途输出每个非零值。当您遇到零时,请重复最近添加到输出中的值。 您可以编写程序或函数,并让输入/输出采用任何方便的格式,只要仍为整数的有序序列,该格式就不会编码额外的信息。如果从程序输出,则可以打印尾随换行符。除了该尾随的换行符之外,您的输出应为提交的可接受输入。 以字节为单位的最短代码获胜。 测试用例 [1, 0, 2, 0, 7, 7, 7, 0, 5, 0, 0, 0, 9] -> [1, 1, 2, 2, 7, 7, 7, 7, 5, 5, 5, 5, 9] [1, 0, 0, 0, 0, 0] -> [1, 1, 1, 1, 1, 1] [-1, 0, 5, 0, 0, …

30
打印物理乘法表
矩形具有这个不错的属性-一个矩形正好由字符组成!n × 米n×mn \times mn × 米n×mn \times m A ..更有趣的属性是矩形可以在乘法表中很好地对齐-例如表:3 × 33×33 \times 3 # ## ### # ## ### # ## ### # ## ### # ## ### # ## ### 您面临的挑战是,给定数字(),输出格式化的乘法表。ñnnn > 1n>1 n > 1n × nn×nn \times n 规则 您可以在上方或下方输入一个ñnn 默认的I / O规则适用 您可以选择任何非空白字符来表示块。其他字符(尽管换行符很特殊)都被认为是空格。对于不同的输入,所选字符可以不同,但​​是在整个输入中必须相同 只要表格对齐,结果就可以有不需要的字符,并且不会出现不属于所需输出的所选字符 …

30
删除二维数组的周围零
这是该问题的二维版本。 给定一个仅包含非负整数的非空二维数组/矩阵: ⎡⎣⎢⎢⎢⎢⎢⎢00000000000001个001个01个0001个1个0⎤⎦⎥⎥⎥⎥⎥⎥[0000000010000010011100000] \begin{bmatrix} {\color{Red}0} & {\color{Red}0} & {\color{Red}0} & {\color{Red}0} & {\color{Red}0} \\ {\color{Red}0} & {\color{Red}0} & 0 & 1 & 0 \\ {\color{Red}0} & {\color{Red}0} & 0 & 0 & 1 \\ {\color{Red}0} & {\color{Red}0} & 1 & 1 & 1 \\ {\color{Red}0} & {\color{Red}0} & {\color{Red}0} & …

30
寻找灵魂伴侣
鉴于整数的非空有限列表,输出truthy如果恰好有两个相等的条目和所有其他条目是不同的值,并且falsey否则值。 例子 truthy: [1,1] [1,2,1] [1,6,3,4,4,7,9] falsey: [0] [1,1,1] [1,1,1,2] [1,1,2,2] [2,1,2,1,2] [1,2,3,4,5]

30
我是微不足道的阵列吗?
一个微不足道阵列是正整数,其中连续元素之间的绝对差均小于或等于的阵列1。 例如,以下数组无关紧要: [1, 2, 3, 4, 3, 4, 5, 5, 5, 4] 因为相应的(绝对)差异是: [1, 1, 1, 1, 1, 1, 0, 0, 1] 全部小于或等于1。 您的任务是确定给定的整数数组是否不重要。 您可以假定数组始终包含至少两个元素。 标准输入和输出规则适用。您可以采用任何合理的格式输入(和输出)。 默认漏洞是禁止的。 真实/虚假的值必须是不同且一致的。 这是代码高尔夫球,因此最短答案以字节为单位。 测试用例 输入->输出 [1、2、3、4、3、4、5、5、5、4]-> true [1、2、3、4、5、6、7、8、9、8]-> true [3,3,3,3,3,3,3]-> true [3,4,4,4,3,3,3,4,4,4]-> true [1、2、3、4]->是 [5、4、3、2]->是 [1、3、5、7、9、7、5、3、1]->否 [1、1、1、2、3、4、5、6、19]->否 [3,4,5,6,7,8,7,5]->否 [1、2、4、10、18、10、100]->否 [10,20,30,30,30]->错误 我使用了值true和false。

30
有颠簸吗?
给定一个正整数列表,确定是否有一个元素大于其两个邻居或小于其两个邻居(“凸点”)。需要明确的是,颠簸永远不会成为列表的第一或最后一项,因为它们只有一个邻居。 您的程序应输出两个一致的值之一,每个值对应于一个没有凹凸的列表或一个带有凹凸的列表。这些值无关紧要,您可以自己选择它们。 这是代码高尔夫球,因此答案将以字节计分,而字节数越少越好。 测试用例 [] -> False [1] -> False [1,2] -> False [1,2,1] -> True [1,2,2] -> False [1,2,3] -> False [1,2,2,1] -> False [1,2,2,3] -> False [1,2,1,2] -> True [1,3,2] -> True [3,1,2] -> True [2,2,2] -> False

30
查找第一个重复的元素
给定一个数组a,其中只包含从1到a.length范围内的数字,请找到第一个重复的数字,其第二次出现的索引最小。换句话说,如果重复的数字多于1个,则返回其第二次出现的索引小于另一个数字的第二次出现的索引的数字。如果没有这样的元素,您的程序/函数可能会导致不确定的行为。 例: 对于a = [2, 3, 3, 1, 5, 2],输出应为 firstDuplicate(a) = 3。 有2个重复项:数字2和3。第二次出现3的索引比第二次出现2的索引小,因此答案是3。 对于a = [2, 4, 3, 5, 1],输出应为 firstDuplicate(a) = -1。 这是代码高尔夫球,因此最短答案以字节为单位。 奖金:您能以O(n)的时间复杂度和O(1)的额外空间复杂度来解决它吗?

21
数组对齐加法
介绍 考虑两个非空整数数组,例如A = [0 3 2 2 8 4]和B = [7 8 7 2]。要对其进行对齐添加,请执行以下操作: 重复每个数组足够的时间,使其总长度为lcm(length(A),length(B))。在这里,lcm代表最低公倍数。 A -> [0 3 2 2 8 4][0 3 2 2 8 4] B -> [7 8 7 2][7 8 7 2][7 8 7 2] 在重复的数组上执行逐元素加法,并在每个数组中都有剪切的位置处剪切结果。 A -> [0 3 2 2 8 4][0 3 …

22
自然派#0-摇滚
目标 创建一个接受输入的程序/函数N,检查N随机整数对是否相对质数,然后返回sqrt(6 * N / #coprime)。 TL; DR 这些挑战是仅需要自然和大脑(也许还有一些可重复使用的资源)才能逼近Pi的算法模拟。如果您在僵尸启示录期间确实需要Pi,那么这些方法不会浪费弹药!还有另外八个挑战。检出沙盒帖子以提出建议。 模拟 我们在模拟什么?好吧,两个随机整数是相对质数(即coprime或gcd == 1)的概率是6/Pi/Pi,因此计算Pi的自然方法是挖出两个桶(或少数几个)的岩石。数他们;看看他们的gcd是否为1;重复。这样做后,一对夫妇很多次,sqrt(6.0 * total / num_coprimes)会趋向Pi。如果计算世界末日后的平方根使您感到紧张,请不要担心!有牛顿法。 我们如何模拟这一点? 接受输入 N 请执行以下N次数: 均匀生成随机正整数,i并且j 用 1 <= i , j <= 10^6 如果gcd(i , j) == 1:result = 1 其他: result = 0 取N结果的总和,S 返回 sqrt(6 * N / S) 规格 输入值 …
39 code-golf  math  random  pi  approximation  popularity-contest  code-golf  sequence  number-theory  binary  coding-theory  code-golf  math  3d  code-golf  code-golf  math  number  code-golf  kolmogorov-complexity  code-golf  ascii-art  graphical-output  binary-tree  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation  hexadecimal  code-golf  math  number  set-theory  code-golf  math  arithmetic  number-theory  integer  code-golf  string  kolmogorov-complexity  code-golf  math  sequence  arithmetic  decision-problem  code-golf  code-golf  ascii-art  code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

15
看天上!这是一个超级骗子阵列!
在Code Review中受到我们竞争对手朋友的这个问题的启发。 定义 甲超级阵列是一个阵列,其中阵列中的每个新的元件比以前的所有元素的总和大。{2, 3, 6, 13}是一个超级数组,因为 3 > 2 6 > 3 + 2 (5) 13 > 6 + 3 + 2 (11) {2, 3, 5, 11}是不是一个超级阵列,因为 3 > 2 5 == 3 + 2 11 > 5 + 3 + 2 甲骗子阵列是一个阵列,其中阵列中的每个新的元件比以前所有的元素的乘积大。{2, 3, 7, 43, 1856}是一个超级数组,但它也是一个双精度数组,因为 3 > …

13
零和保障
介绍 考虑一个非空整数列表L。甲零和切片的大号是的连续子序列大号其总和等于0。例如,[1,-3,2]是零和切片[-2,4,1,-3,2,2 ,-1,-1],但[2,2]不是(因为它的总和不为0),[4,-3,-1]也不是(因为它不连续)。 的零和切片的集合大号是零和盖的大号如果每一个元素属于切片中的至少一个。例如: L = [-2, 4, 1, -3, 2, 2, -1, -1] A = [-2, 4, 1, -3] B = [1, -3, 2] C = [2, -1, -1] 三个零和切片A,B和C构成L的零和覆盖。同一切片的多个副本可以出现在零和封面中,如下所示: L = [2, -1, -1, -1, 2, -1, -1] A = [2, -1, -1] B = [-1, -1, 2] …

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.