Java程序将两个列表的对应元素相乘
将两个对应元素相乘意味着将一个列表的第一个元素与另一个列表的第一个元素相乘,依此类推与第二个元素相乘,直到列表的大小。给定 2 个元素列表,我们必须将两个列表的相应元素相乘。
这可以通过两种方式完成:
- 使用额外空间
- 不使用额外空间
方法一:(Using Extra Space)——您可以使用内置函数Integer.toString将相应的元素相乘并将它们存储在一个字符串中,最后打印该字符串。
Java
// Java program to multiply the corresponding elements of
// two list. using string in-built function
import java.util.Arrays;
class GFG {
public static void main(String[] args)
{
int a1[] = { 2, 5, -2, 10 };
int a2[] = { 3, -5, 7, 1 };
String result = "";
for (int i = 0; i < a1.length; i++) {
// converting integer to string and
// multiplying corresponding element
result += Integer.toString(a1[i] * a2[i]) + " ";
}
System.out.println(result);
}
}
Java
// Java program to cmultiply the corresponding elements of
// two list. using new array
import java.util.Arrays;
class GFG {
public static void main(String[] args)
{
int a1[] = { 2, 5, -2, 10 };
int a2[] = { 3, -5, 7, 1 };
int result[] = new int[a1.length];
for (int i = 0; i < a1.length; i++)
{
// multiplying corresponding element
result[i] = a1[i] * a2[i];
}
for (int i = 0; i < a1.length; i++)
{
System.out.print(result[i] + " ");
}
}
}
Java
// Java program to multiply the corresponding elements of
// two list. using no extra space
import java.util.Arrays;
class GFG {
public static void main(String[] args)
{
int a1[] = { 2, 5, -2, 10 };
int a2[] = { 3, -5, 7, 1 };
for (int i = 0; i < a1.length; i++) {
// multiplying corresponding element
// you can use any array
a1[i] = a1[i] * a2[i];
}
for (int i = 0; i < a1.length; i++) {
System.out.print(a1[i] + " ");
}
}
}
输出
6 -25 -14 10
空间复杂度: O(n)
现在,如果我们想稍后在程序中使用结果,我们也可以将输出存储在新数组中,而不是使用字符串。
Java
// Java program to cmultiply the corresponding elements of
// two list. using new array
import java.util.Arrays;
class GFG {
public static void main(String[] args)
{
int a1[] = { 2, 5, -2, 10 };
int a2[] = { 3, -5, 7, 1 };
int result[] = new int[a1.length];
for (int i = 0; i < a1.length; i++)
{
// multiplying corresponding element
result[i] = a1[i] * a2[i];
}
for (int i = 0; i < a1.length; i++)
{
System.out.print(result[i] + " ");
}
}
}
输出
6 -25 -14 10
空间复杂度: O(n)
方法2:(不使用额外空间)
这与上述方法相同。唯一的区别是我们将使用输入中使用的 2 个数组中的任何一个来存储输出或乘法之后的值,而不是使用额外的数组。
Java
// Java program to multiply the corresponding elements of
// two list. using no extra space
import java.util.Arrays;
class GFG {
public static void main(String[] args)
{
int a1[] = { 2, 5, -2, 10 };
int a2[] = { 3, -5, 7, 1 };
for (int i = 0; i < a1.length; i++) {
// multiplying corresponding element
// you can use any array
a1[i] = a1[i] * a2[i];
}
for (int i = 0; i < a1.length; i++) {
System.out.print(a1[i] + " ");
}
}
}
输出
6 -25 -14 10
空间复杂度: O(1)(因为我们不使用任何其他辅助空间)
Note: Time Complexity of all the above codes is O(n).