Java数组更改一半中一半的值等
所以我有一个方法,它接受数组的大小。我的方法使数组的一半为0Java数组更改一半中一半的值等,java,arrays,sorting,Java,Arrays,Sorting,所以我有一个方法,它接受数组的大小。我的方法使数组的一半为0 int [] arrary2 = new int[arraySize]; for(int i = 0; i < arraySize/2; i++){ arr2[i] = 0; } //do rest of code? return array2; int[]arrary2=新的int[arraySize]; 对于(int i=0;i
int [] arrary2 = new int[arraySize];
for(int i = 0; i < arraySize/2; i++){
arr2[i] = 0;
}
//do rest of code?
return array2;
int[]arrary2=新的int[arraySize];
对于(int i=0;i
如何将数组的后半部分转换为1,依此类推。
例如,大小为14的数组,但数组大小可以是任意大小
[0,0,0,0,0,0,0,0,1,1,1,1,2,2,3]要执行此操作,请跟踪您希望输入值更改的位置、输入值以及在下次更改之前要执行的插入次数
int[] arrary2 = new int[arraySize];
int currentEndPoint = (arraySize / 2) + (arraySize % 2);
int endPointIncrement = currentEndPoint;
int currentInputValue = 0;
for (int i = 0; i < arraySize; i++)
{
if (i == currentEndPoint - 1)
{
currentInputValue++;
endPointIncrement = (endPointIncrement / 2) + (endPointIncrement % 2);
currentEndPoint = currentEndPoint + endPointIncrement;
}
arrary2[i] = currentInputValue;
}
return arrary2;
int[]arrary2=新的int[arraySize];
int currentEndPoint=(arraySize/2)+(arraySize%2);
int endPointIncrement=currentEndPoint;
int currentInputValue=0;
for(int i=0;i
希望这有助于做到这一点,跟踪您希望输入值更改的位置、输入值以及在下一次更改之前要执行的插入次数
int[] arrary2 = new int[arraySize];
int currentEndPoint = (arraySize / 2) + (arraySize % 2);
int endPointIncrement = currentEndPoint;
int currentInputValue = 0;
for (int i = 0; i < arraySize; i++)
{
if (i == currentEndPoint - 1)
{
currentInputValue++;
endPointIncrement = (endPointIncrement / 2) + (endPointIncrement % 2);
currentEndPoint = currentEndPoint + endPointIncrement;
}
arrary2[i] = currentInputValue;
}
return arrary2;
int[]arrary2=新的int[arraySize];
int currentEndPoint=(arraySize/2)+(arraySize%2);
int endPointIncrement=currentEndPoint;
int currentInputValue=0;
for(int i=0;i
希望这有助于粗略算法:
- 计算剩余工作的一半(注意奇数/偶数)
- 用当前值填充该值
- 重复
public static int[] createArray(int size)
{
int[] array = new int[size];
int half = (size / 2) + (size % 2);
int index = half;
int value = 0;
for (int i = 0; i < size; i++) {
if (i == index) {
half = (half / 2) + (half % 2);
index += half;
value++;
}
array[i] = value;
}
return array;
}
粗略算法:
- 计算剩余工作的一半(注意奇数/偶数)
- 用当前值填充该值
- 重复
public static int[] createArray(int size)
{
int[] array = new int[size];
int half = (size / 2) + (size % 2);
int index = half;
int value = 0;
for (int i = 0; i < size; i++) {
if (i == index) {
half = (half / 2) + (half % 2);
index += half;
value++;
}
array[i] = value;
}
return array;
}
这里有一个方法:
import java.util.Arrays;
public class Main {
static int[] createArray(int size) {
int[] result = new int[size];
int limit = (size + 1) / 2;
int start = 0, value = 0, idx = 0;
do {
for (int i = start; i < start + limit && idx < size; ++i)
result[idx++] = value;
start += limit;
limit = (limit + 1) / 2;
++value;
} while (idx < size);
return result;
}
public static void main(String[] args) {
int[] result = createArray(70);
System.out.println(Arrays.toString(result));
}
}
这里有一个方法:
import java.util.Arrays;
public class Main {
static int[] createArray(int size) {
int[] result = new int[size];
int limit = (size + 1) / 2;
int start = 0, value = 0, idx = 0;
do {
for (int i = start; i < start + limit && idx < size; ++i)
result[idx++] = value;
start += limit;
limit = (limit + 1) / 2;
++value;
} while (idx < size);
return result;
}
public static void main(String[] args) {
int[] result = createArray(70);
System.out.println(Arrays.toString(result));
}
}