JAVA中的二和问题-我编码了下面的代码,但在这里找不到问题



给定一个整数nums数组和一个整数目标,返回这两个数字的索引,使它们相加为目标。您可以假设每个输入只有一个解决方案,并且不能两次使用同一个元素。你可以按任何顺序返回答案。示例1:输入:nums=[2,7,11,15],target=9输出:[0,1]解释:因为nums[0]+nums[1]==9,所以我们返回[0,1]。

嗨,团队

上面是我的问题陈述,下面是我编码的代码。


Online Java Compiler.
Code, Compile, Run and Debug java program online. Write your code in this editor and press "Run" button to execute it.
*******************************************************************************/
public class Main {
public static void main(String[] args) {
int[] nums={2,7,8,0};
int target=9;

int s=0;
for(int i=0;i<nums.length;i++)
{
for(int j=i+1;j<nums.length;j++) 
{
s=s+nums[i][j];
}
if(s==target)
{
System.out.print("["+i+","+j+"]");
}
}
} 
}

我不明白汇编有什么问题,有人能帮忙吗->Main.java:20:错误:需要数组,但int找到s=s+nums[i][j];它显示了这个错误enter code here

在行s=s+nums[i][j];中,您正在以2D数组的形式访问nums

但是您将变量nums定义为1D数组。

如果您需要更多帮助,请回复。

public class Solution {
public int[] twoSum(int nums[],int target) {
int arr[]=new int[2];

System.out.print("Array Elements : [");
for(int i=0;i<nums.length;i++){
System.out.print(nums[i]+" ");
}
System.out.println("]");
System.out.println("Target : "+target);

for(int i=0;i<nums.length;i++){
for(int j=i+1;j<nums.length;j++){
if(nums[i]+nums[j] == target){
arr[0]=i;
arr[1]=j;
System.out.println("["+i+","+j+"]");      
}else if(i==0 && j==0){
arr[0]=i;
arr[1]=j;
}
break;
} 
}
return arr;
}

}}

public int[] twoSum(int[] nums, int target) {
int[] indexes = new int[2];
for(int i=0;i<nums.length;i++){
for(int j=i+1;j<nums.length;j++){
if(target ==nums[i]+nums[j]){
indexes[indexes.length-2] =i;
indexes[1] = j;
}
}
}
return indexes;  
}

最新更新