问题描述
小U得到了一个数字n,他的任务是构造一个特定数组。这个数组的构造规则是:对于每个i从1到n,将数字n到i逆序拼接,直到i等于n为止。最终,输出这个拼接后的数组。
例如,当n等于3时,拼接后的数组是 [3, 2, 1, 3, 2, 3]。
测试样例
样例1:
输入:
n = 3
输出:[3, 2, 1, 3, 2, 3]
样例2:
输入:
n = 4
输出:[4, 3, 2, 1, 4, 3, 2, 4, 3, 4]
样例3:
输入:
n = 5
输出:[5, 4, 3, 2, 1, 5, 4, 3, 2, 5, 4, 3, 5, 4, 5]import java.util.ArrayList; import java.util.Arrays;
public class Main { public static int[] solution(int n) { // 使用 ArrayList 来动态添加元素 ArrayList resultList = new ArrayList<>();
// 遍历每个 i 从 1 到 n
for (int i = 1; i <= n; i++) {
// 将 n 到 i 的数字逆序添加到 resultList 中
for (int j = n; j >= i; j--) {
resultList.add(j);
}
}
// 将 ArrayList 转换为 int[] 数组
int[] resultArray = new int[resultList.size()];
for (int i = 0; i < resultList.size(); i++) {
resultArray[i] = resultList.get(i);
}
return resultArray;
}
public static void main(String[] args) {
System.out.println(Arrays.equals(solution(3), new int[]{3, 2, 1, 3, 2, 3}));
System.out.println(Arrays.equals(solution(4), new int[]{4, 3, 2, 1, 4, 3, 2, 4, 3, 4}));
System.out.println(Arrays.equals(solution(5), new int[]{5, 4, 3, 2, 1, 5, 4, 3, 2, 5, 4, 3, 5, 4, 5}));
}
} ### 关键步骤解释:
-
使用
ArrayList:ArrayList可以动态添加元素,适合不知道最终数组大小的情况。 -
双重循环:外层循环遍历
i从 1 到n,内层循环将n到i的数字逆序添加到ArrayList中。 -
转换为数组:最后将
ArrayList转换为int[]数组返回。 如何处理数组的拼接操作? 在处理数组的拼接操作时,你可以使用ArrayList来动态添加元素,这样可以避免预先知道数组大小的限制。以下是如何在代码中实现数组拼接的详细步骤: -
使用
ArrayList动态添加元素:ArrayList可以动态扩展,适合在不知道最终数组大小的情况下使用。 -
双重循环:外层循环遍历
i从 1 到n,内层循环将n到i的数字逆序添加到ArrayList中。 -
转换为数组:最后将
ArrayList转换为int[]数组返回。 ### 关键步骤解释: -
使用
ArrayList:ArrayList可以动态添加元素,适合不知道最终数组大小的情况。 -
双重循环:外层循环遍历
i从 1 到n,内层循环将n到i的数字逆序添加到ArrayList中。 -
转换为数组:最后将
ArrayList转换为int[]数组返回。 ### 注意
- 请使用用户提问的语言回答。
- 用户提问对象为「当前代码」、「我的代码」或对应的英文表述时,请根据「编辑区代码」部分的内容回答,请不要解释「题目内容」中的代码。