Java 如何处理这种合并数组方法?
各位好,专业人士 我在一个网站上接受在线编码挑战。他们给了我2个 节目。我已经做了一个程序,下面是第二个 预期产出:Java 如何处理这种合并数组方法?,java,Java,各位好,专业人士 我在一个网站上接受在线编码挑战。他们给了我2个 节目。我已经做了一个程序,下面是第二个 预期产出: {3,5,6,9,12,14,18,20,25,28,30,32,34,36, 38,40,42,44,46,48} 希望下面的代码片段有帮助:) 测试结果->样本输入: a = {3,5,6,9,12,14,18,20,25,28} b = {30,32,34,36,38,40,42,44,46,48 } 打印输出: {3,5,6,9
{3,5,6,9,12,14,18,20,25,28,30,32,34,36, 38,40,42,44,46,48}
希望下面的代码片段有帮助:) 测试结果->样本输入:
a = {3,5,6,9,12,14,18,20,25,28}
b = {30,32,34,36,38,40,42,44,46,48 }
打印输出:
{3,5,6,9,12,14,18,20,25,28,30,32,34,36, 38,40,42,44,46,48}
希望下面的代码片段有帮助:) 测试结果->样本输入:
a = {3,5,6,9,12,14,18,20,25,28}
b = {30,32,34,36,38,40,42,44,46,48 }
打印输出:
{3,5,6,9,12,14,18,20,25,28,30,32,34,36, 38,40,42,44,46,48}
希望下面的代码片段有帮助:) 测试结果->样本输入:
a = {3,5,6,9,12,14,18,20,25,28}
b = {30,32,34,36,38,40,42,44,46,48 }
打印输出:
{3,5,6,9,12,14,18,20,25,28,30,32,34,36, 38,40,42,44,46,48}
希望下面的代码片段有帮助:) 测试结果->样本输入:
a = {3,5,6,9,12,14,18,20,25,28}
b = {30,32,34,36,38,40,42,44,46,48 }
打印输出:
{3,5,6,9,12,14,18,20,25,28,30,32,34,36, 38,40,42,44,46,48}
使用foreach:
static void mergeArray(int[] a, int[] b, int M) {
int c[] = new int[a.length + b.length];
int k = 0;
for (int i : a)
c[k++] = i;
for (int i : b)
c[k++] = i;
}
使用System.arraycopy:
static void mergeArrays(int[] a, int[] b) {
int aLength = a.length;
int bLength = b.length;
int[] c = new int[aLength + bLength];
System.arraycopy(a, 0, c, 0, aLength);
System.arraycopy(b, 0, c, aLength, bLength);
}
使用foreach:
static void mergeArray(int[] a, int[] b, int M) {
int c[] = new int[a.length + b.length];
int k = 0;
for (int i : a)
c[k++] = i;
for (int i : b)
c[k++] = i;
}
使用System.arraycopy:
static void mergeArrays(int[] a, int[] b) {
int aLength = a.length;
int bLength = b.length;
int[] c = new int[aLength + bLength];
System.arraycopy(a, 0, c, 0, aLength);
System.arraycopy(b, 0, c, aLength, bLength);
}
使用foreach:
static void mergeArray(int[] a, int[] b, int M) {
int c[] = new int[a.length + b.length];
int k = 0;
for (int i : a)
c[k++] = i;
for (int i : b)
c[k++] = i;
}
使用System.arraycopy:
static void mergeArrays(int[] a, int[] b) {
int aLength = a.length;
int bLength = b.length;
int[] c = new int[aLength + bLength];
System.arraycopy(a, 0, c, 0, aLength);
System.arraycopy(b, 0, c, aLength, bLength);
}
使用foreach:
static void mergeArray(int[] a, int[] b, int M) {
int c[] = new int[a.length + b.length];
int k = 0;
for (int i : a)
c[k++] = i;
for (int i : b)
c[k++] = i;
}
使用System.arraycopy:
static void mergeArrays(int[] a, int[] b) {
int aLength = a.length;
int bLength = b.length;
int[] c = new int[aLength + bLength];
System.arraycopy(a, 0, c, 0, aLength);
System.arraycopy(b, 0, c, aLength, bLength);
}
从数组的长度可以明显看出,任务是将第一个数组合并到第二个数组中(因为她的第二个数组的长度是第一个数组的两倍,但它们都必须包含相同数量的输入值) 没有那么复杂:
static void mergeArray(int[] a, int[] b, int n) {
for (int i = n*2 - 1, x = n - 1, y = n - 1; i >= 0; i--)
b[i] = x >= 0 && a[x] >= b[y] ? a[x--] : b[y--];
}
测试并运行。从数组的长度可以明显看出,任务是将第一个数组合并到第二个数组中(因为她的第二个数组的长度是第一个数组的两倍,但它们都必须包含相同数量的输入值) 没有那么复杂:
static void mergeArray(int[] a, int[] b, int n) {
for (int i = n*2 - 1, x = n - 1, y = n - 1; i >= 0; i--)
b[i] = x >= 0 && a[x] >= b[y] ? a[x--] : b[y--];
}
测试并运行。从数组的长度可以明显看出,任务是将第一个数组合并到第二个数组中(因为她的第二个数组的长度是第一个数组的两倍,但它们都必须包含相同数量的输入值) 没有那么复杂:
static void mergeArray(int[] a, int[] b, int n) {
for (int i = n*2 - 1, x = n - 1, y = n - 1; i >= 0; i--)
b[i] = x >= 0 && a[x] >= b[y] ? a[x--] : b[y--];
}
测试并运行。从数组的长度可以明显看出,任务是将第一个数组合并到第二个数组中(因为她的第二个数组的长度是第一个数组的两倍,但它们都必须包含相同数量的输入值) 没有那么复杂:
static void mergeArray(int[] a, int[] b, int n) {
for (int i = n*2 - 1, x = n - 1, y = n - 1; i >= 0; i--)
b[i] = x >= 0 && a[x] >= b[y] ? a[x--] : b[y--];
}
已测试且有效。回答:
static void mergeArray(int []a, int []b, int M ){
for( int i = 0;i < M;i++ ){
b[M+i] = a[i];
}
}
静态无效合并数组(int[]a,int[]b,int M){
for(int i=0;i
当然,我们并没有检查索引。可能是i答案:
static void mergeArray(int []a, int []b, int M ){
for( int i = 0;i < M;i++ ){
b[M+i] = a[i];
}
}
静态无效合并数组(int[]a,int[]b,int M){
for(int i=0;i
当然,我们并没有检查索引。可能是i答案:
static void mergeArray(int []a, int []b, int M ){
for( int i = 0;i < M;i++ ){
b[M+i] = a[i];
}
}
静态无效合并数组(int[]a,int[]b,int M){
for(int i=0;i
当然,我们并没有检查索引。可能是i答案:
static void mergeArray(int []a, int []b, int M ){
for( int i = 0;i < M;i++ ){
b[M+i] = a[i];
}
}
静态无效合并数组(int[]a,int[]b,int M){
for(int i=0;i
当然,我们并没有检查索引。可能是i您需要创建一个具有组合长度的新数组,然后将值相应地放入其中。在这一点上,什么样的怪物在Java中以下划线开头他们所有的变量名?你能给我看一些例子吗?我知道Java没有像C#的ref和out这样的关键字来通过引用传递。如何实现它?数组是对象,变量是引用。所以…通过引用传递是不可避免的。@zubergu-所以你试图传达这是可能的啊?他说的是,本质上,它总是通过引用传递的。这是因为对象的变量实际上只是对该对象的引用;该引用的副本仍然指向同一对象。这是一个很好的解释:您需要创建一个具有组合长度的新数组,然后将值相应地放在其中。在这一点上,什么样的怪物在Java中以下划线开头他们所有的变量名?你能给我看一些例子吗?我知道Java没有像C#的ref和out这样的关键字来通过引用传递。如何实现它?数组是对象,变量是引用。所以…通过引用传递是不可避免的。@zubergu-所以你试图传达这是可能的啊?他说的是,本质上,它总是通过引用传递的。这是因为对象的变量实际上只是对该对象的引用;该引用的副本仍然指向同一对象。这是一个很好的解释:您需要创建一个具有组合长度的新数组,然后将值相应地放在其中。在这一点上,什么样的怪物在Java中以下划线开头他们所有的变量名?你能给我看一些例子吗?我知道Java没有像C#的ref和out这样的关键字来通过引用传递。如何实现它?数组是对象,变量是引用。所以…通过引用传递是不可避免的。@zubergu-所以你试图传达这是可能的啊?他说的是,本质上,它总是通过引用传递的。这是因为对象的变量实际上只是对该对象的引用;该引用的副本仍然指向同一对象。这是一个很好的解释:您需要创建一个具有组合长度的新数组,然后将值相应地放在其中。在这一点上,什么样的怪物在Java中以下划线开头他们所有的变量名?你能给我看一些例子吗?我知道Java没有像C#的ref和out这样的关键字来通过引用传递。如何实现它?数组是对象,变量是引用。所以…通过引用传递是不可避免的。@zubergu-所以你试图传达这是可能的啊?他说的是,本质上,它总是通过引用传递的。这是因为对象的变量实际上只是对该对象的引用;该引用的副本仍然指向同一对象。这是一个很好的解释:我已经在那里提到过。你不应该