给定一个整数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;
}