Arrays 以值的倍数插入数组,其中值在数组传递之间递增
我有一个基本数组和任意数量的数组-实际上不是数组,而是按顺序计算的值(最后将对此进行详细介绍)。我想在基本数组值前面插入新计算的值 我使用的语言具有动态数组,并且有一个名为Arrays 以值的倍数插入数组,其中值在数组传递之间递增,arrays,algorithm,indexing,merge,insert,Arrays,Algorithm,Indexing,Merge,Insert,我有一个基本数组和任意数量的数组-实际上不是数组,而是按顺序计算的值(最后将对此进行详细介绍)。我想在基本数组值前面插入新计算的值 我使用的语言具有动态数组,并且有一个名为insert的方法,该方法将值插入指定的索引中 arr = [0, 1, 2] // insert `9` in index `0` arr.insert( 0, 9 ) // result // [9, 0, 1, 2] // insert `8` in index `2` arr.insert( 2, 8 ) //
insert
的方法,该方法将值插入指定的索引中
arr = [0, 1, 2]
// insert `9` in index `0`
arr.insert( 0, 9 )
// result
// [9, 0, 1, 2]
// insert `8` in index `2`
arr.insert( 2, 8 )
// result
// [9, 0, 8, 1, 2]
想象问题:
基本数组由o
组成,新值为a
,b
等
// values
o o o o o
a a a a a
b b b b b
c c c c c
d d d d d
e e e e e
// desired result in the end of each value calculation loop
o o o o o
oa oa oa oa oa
oab oab oab oab oab
oabc oabc oabc oabc oabc
逐步(循环)插入可视化
o o o o o
// insert( 1, a )
oa o o o o
// insert( 3, a )
oa oa o o o
// insert( 5, a )
oa oa oa o o
// insert( 7, a )
oa oa oa oa o
// insert( 9, a )
oa oa oa oa oa
// insert( 2, b )
oab oa oa oa oa
// insert( 5, b )
oab oab oa oa oa
// insert( 8, b )
oab oab oab oa oa
// insert( 11, b )
oab oab oab oab oa
.
.
.
它在代码中的实际外观:
for( j = 0; j < 10; j++ )
{
for( i = 0; i < baseArrLength; i++ )
{
idx = (j+1) + (i * (j+2));
base.insert( idx, val );
}
}
您的
idx
逻辑错误
// Loop 10 times
for(int j = 1; j < 11; j++){
String val;
// TODO: val becomes set from some calculation the Questioner does
int idx = j;
for(int i = 0; i < baseArrLength; i++){
idx = idx + j + 1;
base.insert(idx, val);
}
}
//循环10次
对于(int j=1;j<11;j++){
字符串val;
//TODO:val通过提问者的计算设置
int idx=j;
for(int i=0;i
我在问这个问题的同一天找到了公式。是的
(i+2)+(j*(i+2))
其中,
i
是外循环,j
是内循环。看起来像“我正在使用的语言”是Java
?将代码添加到设置val
的代码段中,这样我们就可以看到。@cellepoval
的值与语言无关,因为这是一个算术问题。这个问题与包含的代码片段一起提出,使语言具有相关性。我不知道为什么在这里隐藏代码片段是用什么语言编写的如此重要,因为代码片段本身就是。语言也是相关的,因为如果不熟悉这里使用的语言的人试图理解这个问题,他们可能不会立即意识到他们不熟悉的语法应该使用哪种语言(例如:“要从代码中找出case
的东西,我应该用谷歌搜索“case”吗?”我同意这个问题主要是关于算法的,但正因为如此,如果我添加了一个我在原始帖子中使用的测试片段,那么问这个问题会更好。使用您的答案,我得到以下输出:oobobocbddocbdodocbdocbdocbdocbdocodocodd
// Loop 10 times
for(int j = 1; j < 11; j++){
String val;
// TODO: val becomes set from some calculation the Questioner does
int idx = j;
for(int i = 0; i < baseArrLength; i++){
idx = idx + j + 1;
base.insert(idx, val);
}
}