我必须在数字序列中找到丢失的数字。输入由 0 到 35000 之间的正整数 n 和 n 个范围为 [0..n] 的唯一数字组成。(所以这个范围包含n+1个数字)。
sum={n*(n+1)}/2我已经用and then尝试过一些事情misNum=sum-SumOfNum;,但我找不到一种方法来完成这项工作。
我写了一些代码,但不是我之前提到的例子。显然,这段代码并不完整,但我不知道如何使其完整。
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char *v[]) {
int length;
int num;
scanf("%d", &length);
/*scanf(???)*/
int goal=length;
int i;
for(i=0; i!=length; i++){
goal=goal+i-num[i];
};
return goal;
}
Run Code Online (Sandbox Code Playgroud)
输入和结果应该是:
输入:2“输入”0 2。输出:1
输入:3“输入”0 3 1。输出:2
我有一个字符串:
string input = "aaaabbcccghbcccciippppkkllk"
Run Code Online (Sandbox Code Playgroud)
输出应该是:
abcghbcipklk
Run Code Online (Sandbox Code Playgroud)
注意:必须使用循环或递归。ETC。
只是想知道是否有比这更好、更高效的代码:
string input = "aaaabbcccghbcccciippppkkllk";
int j=0;
for (int i=0; i<input.Length - 1; i++) {
for(j=i+1; j<input.Length && input[i] == input[j]; j++);
input = input.Substring(0, i+1) + input.Substring(j);
}
Console.WriteLine(input);
Run Code Online (Sandbox Code Playgroud) CSES 问题(https://cses.fi/problemset/task/2216/)。
\n给你一个数组,其中包含 1\xe2\x80\xa6n 之间的每个数字恰好一次。你的任务是按升序收集从 1 到 n 的数字。\n在每一轮中,你从左到右遍历数组并收集尽可能多的数字。总轮数是多少?\n约束:1\xe2\x89\xa4n\xe2\x89\xa42\xe2\x8b\x8510^5
\n这是我在 C++ 上的代码:
\nint n, res=0;\ncin>>n;\nint arr[n];\nset <int, greater <int>> lastEl;\nfor(int i=0; i<n; i++) {\n cin>>arr[i];\n auto it=lastEl.lower_bound(arr[i]);\n if(it==lastEl.end()) res++;\n else lastEl.erase(*it);\n lastEl.insert(arr[i]);\n}\ncout<<res;\nRun Code Online (Sandbox Code Playgroud)\n我遍历数组一次。如果元素 arr[i] 小于所有先前的元素,那么我“打开”一个新序列,并将该元素保存为该序列中的最后一个元素。我将已打开序列的最后一个元素存储在集合中。如果 arr[i] 小于前面的一些元素,则我采用具有最大最后一个元素(但小于 arr[i])的现有序列,并用 arr[i] 替换该序列的最后一个元素。\遗憾的是,它仅适用于给定的三个测试中的两个测试,而对于第三个测试,输出比应有的要少得多。我究竟做错了什么?
\n我想生成两个不定式系列 0 和 1,具体按以下顺序:
0, 1, 0, -1, 0, 1, 0, -1, ...
我创建了以下代码,它不返回除以下内容之外的内容:
# for in loop
for i in itertools.cycle(range(0,2)):
if i == 0:
i += 1
if i == 1:
i -= 1
if i == 0:
i -= 1
print(i, end = " ")
Run Code Online (Sandbox Code Playgroud)
它只是返回一系列-1。无法弄清楚错误在哪里。任何人都可以提出任何建议
使用% 2给了我交替序列[0, 1, 0, 1, ...]
seq = []
for i in range(10):
e = i % 2
seq.append(e)
Run Code Online (Sandbox Code Playgroud)
有没有办法通过从循环内部[0, 0, 1, 1, 0, 0, 1, 1,...]生成元素来生成序列?
seq = []
for i in range(10):
e = the_solution(i)
seq.append(e)
Run Code Online (Sandbox Code Playgroud) 有2列数据:
\na 2\nb 3\nc 1\nRun Code Online (Sandbox Code Playgroud)\n结果:
\nX01a\nX02a\nX01b\nX02b\nX03b\nX01c\nRun Code Online (Sandbox Code Playgroud)\n在 Google Sheets 中我使用以下公式:
\n=tocol(map(A2:A;B2:B;lambda(a;b;if(counta({a\\b})<>2;;index("X"&text(sequence(1;b);"00")&a&"|"&b))));1)\nRun Code Online (Sandbox Code Playgroud)\n在 Excel 中,此公式给出错误:#CALC!错误(嵌套数组)
\n如何在 Excel 中执行此操作?
\n\n我不明白如何根据我的目的调整这个公式。
\n=LET(Data,A2:A5,Repeats,B2:B5,\n Both,HSTACK(Data,Repeats),Filtered,FILTER(Both,Repeats>0),\n dData,TAKE(Filtered,,1),dStacked,VSTACK(dData,""),\n rData,TAKE(Filtered,,-1),rSequence,SEQUENCE(SUM(rData)),\n rStacked,VSTACK(0,rData),rScanned,SCAN(1,rStacked,LAMBDA(a,b,a+b)),\n rIndexes,MATCH(rSequence,rScanned),\nResult,INDEX(dStacked,rIndexes),Result)\nRun Code Online (Sandbox Code Playgroud)\n该公式将返回超过 250k 个结果。我希望它没有挂断。:)
\n使用额外的列找到答案。是否有非 VBA Excel 溢出公式来创建和处理数组数组?
\n如何在没有额外列的情况下获得结果?\n所有建议的方法都返回:
\na\na\nb\nb\nb\nc\nRun Code Online (Sandbox Code Playgroud)\n我需要一个带有连续数字的结果。
\n1a\n2a\n1b\n2b\n3b\n1c\nRun Code Online (Sandbox Code Playgroud)\n 我正在尝试编写一个好的zipAll函数——不像 Scala 的函数,而是像 C++ 的函数zip_view:只是 Kotlin 的 zip,其中并行迭代任意数量的序列,长度等于最短。
我想出了:
fun <T> zipAll(vararg seq: Sequence<T>): Sequence<List<T>> {
return sequence {
while (seq.all { it.iterator().hasNext() })
yield(seq.map { it.take(1).first() })
}
}
fun main() {
val s = sequenceOf(1,2,3)
val s2 = sequenceOf(3,4,5,6)
println(zipAll(s, s2).toList())
}
Run Code Online (Sandbox Code Playgroud)
但Kotlin Playground 给出了(编辑:使用我本地 IntelliJ Idea 中更完整的堆栈跟踪)
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.base/java.util.Arrays.copyOf(Arrays.java:3512)
at java.base/java.util.Arrays.copyOf(Arrays.java:3481)
at java.base/java.util.ArrayList.grow(ArrayList.java:237)
at java.base/java.util.ArrayList.grow(ArrayList.java:244)
at java.base/java.util.ArrayList.add(ArrayList.java:454)
at java.base/java.util.ArrayList.add(ArrayList.java:467)
at kotlin.sequences.SequencesKt___SequencesKt.toList(_Sequences.kt:816)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我现在开始用Java编程.我试图将标题中的序列编码为Java中的输出,但我被卡住了!我正在尝试for功能,欢迎任何帮助;)
我有一个很大的data.frame,我想生成一个新的列(称为Seq),它有一个顺序值,每次不同的列发生更改时重新启动.下面是data.frame(带有省略的列)和名为Seq的新列的示例.正如您所看到的那样,有一个sequentiel计数,但每次有新的IDPath时,sequentiel计数都会重新开始.sequentiel长度可以有不同的长度,有些是1长,而其他是300.
IDPath LogTime Seq
AADS 19-06-2015 01:57 1
AADS 19-06-2015 01:55 2
AADS 19-06-2015 01:54 3
AADS 19-06-2015 01:53 4
DHSD 19-06-2015 12:57 1
DHSD 19-06-2015 10:58 2
DHSD 19-06-2015 09:08 3
DHSD 19-06-2015 08:41 4
Run Code Online (Sandbox Code Playgroud) 我对像这样的元素有一个序列
([:Jon 326] [:Mary 233] [:Matthew 255])
并希望以一种巧妙的方式将此序列转换为类似
{{:name Jon :rank 1} {:name Matthew :rank 2} {:name Mary :rank 3}}
:name应该是字符串类型,而:rank应该是整数
排名是由数字计算得出的,与序列中元素中的其他元素相比,“点”越高,排名越高