Questions tagged «array-manipulation»

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

13
获取最接近数字的值
在此代码中,您需要从列表中的另一个号码获得最接近的号码。 输出可能是最接近输入的数字。 例: value: (Input) 5 --- [1,2,3] --- 3 并且,该程序可能会使用负数。 例: value: (Input) 0 --- [-1,3,5] --- -1 value: (Input) 2 --- [1, 5, 3] --- 1 (Because it gives priority to lower numbers) 规则: 如前所述,它必须使用负数。 如果有两个答案(例如:0-[5,-5]),则程序将优先考虑最低的数字。(-5) 这是代码高尔夫球,所以最短的代码获胜!

3
检查工作时间
介绍 在德国,工作时间的规定非常严格。如果您每天工作6个小时或以上,则必须至少休息30分钟。如果您工作9个小时以上,则需要休息45分钟。如果您的工作时间少于6个小时,则无需休息。 当然,您可以拆分这些休息时间,但每个部分的时间至少必须为15分钟才能计算在内。 挑战 在此挑战中,您将获得工作时间列表,并且必须使用以下规则检查是否已采取足够的休息时间: 我们w要以小时为单位的工作时间: w < 6 -> No breaks needed 6 <= w < 9 -> 30 minute break needed w >= 9 -> 45 minute break needed 此外,每个休息时间必须至少15分钟。另外,您总是可以休息多于所需时间。这些都是“至少”值。 输入值 您的输入将是工作时间列表。确切的格式由您决定,但是它只能包含时间值,例如小时和分钟。 例: 这里的格式是一个元组列表,而每个元组代表一个工作周期。元组中的第一个元素将是开始时间,第二个元素将是结束时间。 [("07:00","12:00"),("12:30","15:30"),("15:45","17:15")] 这导致总工作时间为9.5小时,总休息时间为45分钟。 请注意,这些工作时间不必用休息时间隔开。也可能存在彼此紧随的工作周期(示例请参见测试用例)。 另请注意,休息时间不会计入工作时间。这些是两个单独的值。 您可以假定工作期是有序的。 输出量 鉴于这种输入,输出truthy值,如果采取和足够的休息falsy如果没有价值。 规则 指定您在提交中使用的输入格式。 您不必处理空输入。总会有至少一个工作周期。 工作时间仅为一天,因此您不必在午夜时分上班。 只要您的语言附带日期/时间/任何内置函数即可。 允许功能或完整程序。 输入/输出的默认规则。 …

12
删除指定的非数字行
如有任何疑问:Nan = Non-numeric datatype就本挑战而言。 编写一个将矩阵/数组作为输入以及列索引列表的程序或函数。 面临的挑战是删除指定列中所有元素所在的行Nan。该行中的其他元素是否为数字都没有关系。以下示例有望使这一点更加清晰(它是一个索引的): Input array: 16 NaN 3 13 5 11 NaN 8 NaN 7 NaN 12 4 14 -15 1 Input column index: [1 3] Output array: 16 NaN 3 13 5 11 NaN 8 4 14 -15 1 ---- Input array: 16 NaN 3 13 …

10
取消图形
介绍 在此挑战中,将为您提供带有自环的有向图,而您的任务是将其转换为无自环的无向图。 输入值 您的输入是一个有向图,其顶点设置{0, 1, ..., n-1}为某个自然数n ≥ 0(或者{1, 2, ..., n}如果您使用基于1的索引)。该图以length- nlist的形式给出,L其中L[i]是顶点的邻居的列表i。例如,列表[[0,1],[0],[1,0,3],[]]代表图形 .-. | v '-0<--2-->3 ^ | | | v | 1<--' 请注意,邻居列表不一定是有序的,但是可以保证它们没有重复。 输出量 您的输出是另一张与输入格式相同的图,可从图获得,如下所示。 删除所有自循环。 对于每个剩余边u -> v,v -> u如果还没有反转边,则添加它。 与输入一样,输出图的邻居列表可能是无序的,但它们不能包含重复项。对于上面的图,正确的输出将是[[1,2],[0,2],[0,1,3],[2]],代表图 0<->2<->3 ^ ^ | | v | 1<--' 规则 您可以在图形中使用基于0或基于1的索引。功能和完整程序都可以接受。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 这些测试用例使用基于0的索引。在基于1的情况下递增每个数字。这些邻居列表按升序排序,但不是必需的。 [] -> [] [[0]] …

2
得分游戏《王国建设者》
我想在这里尝试一种新的代码高尔夫形式。与奖金类似,并非必须完成挑战的所有部分,但每个答案都必须实现一定规模的子集(并且每个答案都必须实现一个核心)。因此,除了打高尔夫球之外,这项挑战还涉及选择一套可以完美搭配的功能。 规则 Kingdom Builder是一种棋盘游戏,在(尖顶)十六进制网格上播放。该评估板由四个(随机的)象限组成,每个象限具有10x10的十六进制单元(因此完整的评估板将为20x20)。出于此挑战的目的,每个十六进制单元格包含水(W),山(M),城镇(T),城堡(C)或为空(.)。所以象限看起来像 . . W . . . . . . . . M W W . . . . . . . M . . W . . . T . M M . W . . . . . . . . M . W W …


30
查找百分比
一段时间以来,我们没有遇到任何轻松,轻松的挑战,所以我们开始吧。 给定一个整数列表,每个整数均大于并有一个索引作为输入,请输出该项目在列表总和给定索引处的百分比。000 输出应该是您的语言(浮点数/整数)的自然表示形式(一元,十进制,教堂数字等)。如果选择轮以任何方式输出,它必须有最低2位小数(合理时,并不需要是圆形的,但也完全可以接受的)。1.21.21.21.201.201.201.20 索引可以是1索引或0索引,并且将始终在数组的范围内。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 例子 使用1索引并四舍五入为2 dp list, index => output [1, 2, 3, 4, 5], 5 => 5 / 15 => 33.33 [7, 3, 19], 1 => 7 / 29 => 24.14 [1, 1, 1, 1, 1, 1, 1, 1, 1], 6 => 1 / 9 => 11.11 …

22
发牌给玩家
今晚是纸牌游戏之夜!您是发牌人,您的任务是编写一个程序以将牌分发给玩家。 给定纸牌阵列和玩家数量,您需要将每个玩家的纸牌阵列分成一手。 规则 您的程序将收到一个非空数组A,以及一个非零正整数n。然后应将阵列拆分为n双手。如果字符串的长度不能被n剩余的卡片所整除,则应尽可能均匀地分配。 如果为n==1,则您需要返回的数组,A因为它是唯一元素 如果n大于的长度A,则需要退回每手和空手。如果n = 4和array A = [1,2,3],您应该返回[[1],[2],[3]]或 [[1],[2],[3],[]]。您可以自由处理空,未定义或空值的空手。 数组可以包含任何类型,而不是数字。 您不应在处理时更改数组的顺序。例如if n = 2和A= [1,2,3],任何结果而不是[[1,3],[2]]无效的。 测试用例 n A Output 1 [1,2,3,4,5,6] [[1,2,3,4,5,6]] 2 [1,2,3,4,5,6] [[1,3,5],[2,4,6]] 3 [1,2,3,4,5,6] [[1,4],[2,5],[3,6]] 4 [1,2,3,4,5,6] [[1,5],[2,6],[3],[4]] 7 [1,2,3,4,5,6] [[1],[2],[3],[4],[5],[6]] // or [[1],[2],[3],[4],[5],[6],[]] 演示程序 def deal(cards, n): i = 0 players = [[] …

8
旋转不变指纹
假设我们有一些多米诺骨牌,并且想唯一地标识它们,但是多米诺骨牌可以旋转,因此盲目地对它们进行散列将不会为我们提供相同的指纹及其旋转(通常)。 例如,如果我们有L-tetromino x x xx 我们希望它具有与以下任何一个相同的指纹: xx x x xxx xxx , x or x 注意:我们只允许在平面上旋转(即,它们是单面的多米诺骨牌),因此以下多米诺骨牌将是不同的: x x xx 挑战 对于这一挑战的任务是实现一个指纹函数/程序,其需要一个m×nm×nm\times n布尔/ 0,10,10,1列出/串-valued矩阵/列表/ ..编码四角并返回一个字符串-一个四角的指纹。对于所有可能的旋转,指纹必须相等(通常为4)。 输入输出 m≥1m≥1m \geq 1和n≥1n≥1n \geq 1(即没有空四角) 您可以确保m,nm,nm,n尽可能小(即将所有000修剪为适合mmm和nnn 您可以确保输入为 只需连接 没有孔 输出必须是一个字符串,该字符串对于多米诺骨牌的每次可能旋转都相同 例子 这是一些等效类,对于每个类,指纹必须相同;对于来自两个不同类的任何两个多胺,它们必须不同。 示例中的左旋四聚体的旋转: [[1,0],[1,0],[1,1]] [[0,0,1],[1,1,1]] [[1,1],[0,1],[0,1]] [[1,1,1],[1,0,0]] J-tetromino: [[0,1],[0,1],[1,1]] [[1,1,1],[0,0,1]] [[1,1],[1,0],[1,0]] [[1,0,0],[1,1,1]] 单位多胺: [[1]] 阿5×15×15\times …

9
交错,堆积,求和
受此堆栈溢出问题启发。 挑战 输入值 包含非负整数的正方形矩阵的数组。 输出量 根据输入矩阵构建的方阵如下。 令ñ× Nñ×ñN \times N为每个输入矩阵的大小,PPP为输入矩阵的数目。 为了清楚起见,请考虑以下示例输入矩阵(ñ= 2ñ=2N=2,P= 3P=3P=3): 3 5 4 10 6 8 12 11 2 0 9 1 从第一个输入矩阵开始。 将第二个输入矩阵N -1下移,N -1右移,以使其第二个输入矩阵的左上条目与前一个的右下条目重合。 想象一下第二个移位矩阵,就像它堆叠在第一个顶部一样。在重合条目中将两个值求和。写下其他值,并用填充其余条目,0以获得(2 牛− 1 )× (2 牛− 1 )(2ñ-1个)×(2ñ-1个)(2N-1)\times(2N-1)矩阵。使用示例输入,到目前为止的结果是 3 5 0 4 16 8 0 12 11 对于每个剩余的输入矩阵,请对其进行交错处理,以使其到目前为止的累计结果矩阵的左上角与右下角重合。在示例中,包括第三输入矩阵 3 5 0 …

22
对2D数组中的行和列进行块排序
给定一个2D整数数组,让我们按块对它的行和列进行排序。这意味着您只需要对给定的行或列进行排序,而是将对其进行排序所需的转换应用于2D数组中的所有其他行或列。 规则 输入将是一个2D整数数组和一个1索引整数。如果数字为正,则此整数将表示要排序的行,如果数字为负(或相反,则为整数)将表示要排序的列。示例:给定4x3(行x列)数组,您可以使用-2参数或参数对第三行进行3。第二个参数永远不会为零,其绝对值也不会大于数组的相应维数。 输出还将是一个2D整数数组,并应用了所需的转换来对给定的行或列进行排序。另外,您也可以将阵列写入STDOUT。 输出数组将具有指定的行或列,以升序排列。请注意,当您需要连续交换两个数字时,将交换数字所在的整个列。当您需要在一列中交换两个数字时,数字所在的整行将被交换。 如果相同的数字在要排序的行/列中多次出现,则根据交换值的方式可能会有几种解决方案,只需对要交换的其余行/列进行相应处理。 例子 Positive indices for rows and negative indices for columns [5 8 7 6 [1 3 2 4 1 3 2 4 order by -3 (3rd column) --> 9 6 3 0 9 6 3 0] 5 8 7 6] [5 8 7 6 …

21
填满重复范围
令是没有特定顺序的正整数列表,并且可以包含重复项。编写程序或函数,输出正整数的列表(排序不重要),这样将和合并为最小的列表,可以将其完全拆分为整数范围相同的整数,其中是最大的元素M L M [ 1 .. i ] i LLLLMMMLLLMMM[1..i][1..i][1..i]iiiL大号L 例 让L = [5,3,3,2,7]。的最大元素L为7。特定整数出现的次数最多2(3出现2次)。因此,我们需要输出M将允许完成的列表,L以便我们可以构造2从1到的整数范围7。 因此,我们需要输出M = [1,1,2,4,4,5,6,6,7],以便从1to的每个整数7出现2次数。 输入和输出 使用与清单类似的任何语言。用于输入和输出的数据结构必须相同。 输入列表将仅包含正整数。 输入列表不会为空。 您不能假定输入列表已排序。 输出列表中的顺序并不重要。 测试用例 Input Output [1] [] [7] [1, 2, 3, 4, 5, 6] [1, 1, 1] [] [1, 8] [2, 3, 4, 5, 6, 7] [3, 3, 3, …

3
如何在Octave中使用匿名函数交换向量中的元素?
在Octave中交换向量/矩阵中的两个元素非常简单: x='abcde'; x([4,1])=x([1,4]) x = dbcae 不幸的是,我还没有找到在匿名函数中执行此操作的方法。尽管下面的函数在语法上是正确的,但它只返回交换的两个元素,而不是整个x向量: f=@(x)(x([4,1])=x([1,4])) f(x) ans = ad 是否有一种方法可以通过匿名方法使用匿名函数来实现所需的行为?可以使用匿名函数以这种方式交换几个元素吗? 我可以创建一个索引向量:f=@(x)x([4,2,3,1,5]),但是动态创建这样的向量也可能会占用很多字节。

10
限制跑步次数
自我限制清单 考虑包含非负整数的非空列表L。甲运行在大号是相等的元素,这是不能进行长的连续子列表。例如,[0,0,1,1,3,3,3,2,1,1]的游程为[0,0],[1,1],[3,3,3],[2 ],[1,1]。列表大号是自限性的,如果对于每个整数Ñ≥1 ,的出现次数Ñ小于或等于的运行数N-1 。上面的列表不是自限性的,因为有4次出现1,但只有一次运行0 s。 这是一个自限制列表的示例:[0,0,3,4,1,0,2,1,1,0,2,1,0,0,0,1,0]。它有 5个的运行0和5所出现的1, 4次运行1次和2次出现2次, 2个的运行2和1次的出现3, 1运行3和1出现4, 1次运行4次,未出现5次, 没有其他整数的出现。 任务 您的任务是确定列表是否是自限制的。更明确地说,您的输入应为非负整数的非空列表。如果列表是自限性的,则您的输出应为真实;否则,将是虚假的。输入和输出可以采用任何合理的格式。 每种编程语言中最少的字节数是获胜者。适用标准代码高尔夫球规则。 测试用例 真实实例: [0] [1,0] [0,1,1,0,2] [3,1,1,0,0,2,0,0] [5,0,4,1,3,0,2,2,0,1,1,1,0] [0,0,1,1,0,0,1,1,0,0,2,2,0,0] [6,0,0,0,2,2,1,0,5,0,3,4,0,1,1,1] [5,0,1,0,0,0,0,4,0,3,1,1,1,2,2,0,0,0,0,0] [4,5,1,3,2,0,5,2,0,3,0,1,0,1,0,0,0,1,0,0,1,0,3,4,4,0,2,6,0,2,6] [0,4,1,3,10,6,0,1,3,7,9,5,5,0,7,4,2,2,5,0,1,3,8,8,11,0,0,6,2,1,1,2,0,4] 虚假实例: [2] [1,1,0] [0,0,1,1,1,0,0,2] [0,1,0,1,1,2,2,3,0,0,4,6] [1,1,2,1,2,0,2,0,3,0,0,2,2,1,2,3,2,0,1,1,1,0,0,3,3,0] [3,4,1,0,0,0,5,5,0,2,2,0,0,0,0,0,2,0,1,1,0,4,3,5,4,3] [1,0,0,0,2,5,3,1,1,0,3,3,1,3,5,4,0,4,0,0,2,0,2,1,1,5,0,0,2,4,4,0,2,0,1,4,4,2,3,3,5,3,4,0,2,0,5] [4,3,1,0,0,4,6,6,1,0,1,2,1,3,0,1,0,2,0,3,4,0,2,1,1,3,0,2,2,2,0,5,5,0,5,2,5,5,0,4,3,2,3,1,1,3,5,1,4,1,6,2,6,2,4,0,4,0,4,5,3,3,0,0,6,1,0,0,0,6,2,1,0,1,2,6,2,4] [5,1,1,1,0,2,0,6,1,0,2,1,2,2,5,3,1,0,0,0,3,2,3,0,1,1,0,1,0,1,1,2,0,6,4,1,2,1,1,6,4,1,2,2,4,0,1,2,2,1,3,0,1,2,0,0,0,2,0,2,2,0,1,0,0,1,3,0,0,0,6,2,0,1,0,1,2,1,1,1,0,4,0,0,5,2,0,0,0,4,1,2,2,2,2,0,5,3,2,4,5,0,5]

15
模数平价方
你给出的阵列甲的Ñ严格为正整数,Ñ≥2 。 您的任务是将每个条目A i映射到: 1如果甲Ĵ MOD甲我是奇数每个Ĵ使得1≤Ĵ≤Ñ和Ĵ≠我 2,如果阿Ĵ MOD甲我是即使针对每个Ĵ使得1≤Ĵ≤Ñ和Ĵ≠我 否则为0(混合奇偶校验) 例 对于A = [73,50,61],我们有: 50模73 = 50,61模73 = 61 →混 73模50 = 23,MOD 61 50 = 11 →所有奇数 73模61 = 12,50 MOD 61 = 50 →所有偶数 因此,预期输出为[0,1,2]。 规则 您可以使用任何三个不同的值(任何类型),而不是0,1和2,因为他们是一致的,只要。如果您未使用挑战中所述的映射,请指定映射。 如果对此有任何疑问,则零为偶数。 这是代码高尔夫球,因此最短答案以字节为单位! 测试用例 [ 1, 2 ] --> [ 2, 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.