给定一个整数数组和一个整数目标,返回两个数字的索引,使它们相加为目标。
class Solution {
public int[] twoSum(int[] nums, int target) {
int[] sum = new int[2];
for(int i=0;i<nums.length;i++){
if((nums[i]+nums[i+1]) == target){
sum[0] = i;
sum[1]= i+1;
break;
}
}
return sum;
}
}
警告:命令行选项已启用安全管理器警告:安全管理器已弃用,将在将来的版本中删除
JAVAlang.ArrayIndexOutOfBoundsException:索引3超出第6行的长度3的界限,解决方案。twoSum
在第54行,驾驶员解决方案。帮手
第87行Driver.main
ArrayIndexOutOfBoundsExctive告诉您,您试图访问超出数组范围的索引。
解决方案是在索引1而不是0处开始循环,并始终将i和i-1相加。
class Solution {
public int[] twoSum(int[] nums, int target) {
int[] sum = new int[2];
for(int i=1;i<nums.length;i++){
if((nums[i-1]+nums[i]) == target){
sum[0] = i-1;
sum[1]= i;
break;
}
}
return sum;
}
}
您的问题在于这部分代码:
if((nums[i]+nums[i+1]) == target){
sum[0] = i;
sum[1]= i+1;
break;
}
如果for循环一直持续到i=nums。长度i 1将抛出一个越界异常。
您正在将i从0循环到nums。长度,然后试图得到nums[i 1],所以很明显你要求的是ArrayIndexOutOfBoundsException。
既然你在查I1,你应该循环到nums。长度-1
编辑:数组索引是从零开始的。它们可以安全地从0索引到长度-1。
**给定一个整数数组和一个整数目标,返回两个数字的索引,使它们相加为目标。 您可以假设每个输入都只有一个解决方案,并且您不能两次使用相同的元素。 您可以以任何顺序返回答案。 例1: 输入:nums=[2,7,11,15],target=9 输出:[0,1] 说明:因为nums[0]nums[1]==9,所以我们返回[0,1]。 例2: 输入:nums=[3,2,4],target=6 输出:[1,
配置根项目“我的应用程序”时出现问题。 未能解析配置“:classpath”的所有工件。无法解析com.android.tools.build:gradle:3.6.2。project:脱机模式下没有com.android.tools.build:gradle:3.6.2的缓存版本。脱机模式下没有com.android.tools.build:gradle:3.6.2的缓存版本。 这是我的错误,我
错误:JAVA_HOME设置为无效目录:/Library/JAVA/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/HOME 请在您的环境中设置JAVA_HOME变量,以匹配您的JAVA安装位置。 更新后,我得到了这种类型的错误。我已经重新安装了jdk,但同样error.Please帮助
我是Springboot的新手,我通过Sping的教程和“https://spring.io/guides”指南来学习。 现在我试图理解并重做教程:“使用MySQL访问数据” 不幸的是,我在Mavenbuild期间出错: 启动ApplicationContext时出错。要显示自动配置报告,请在启用“调试”的情况下重新运行应用程序。2017-12-07 10:26:42.708错误8100---[m
这是我的体格 错误:任务“DemoProject:transformClassesWithJarMergingForDebug”的执行失败。 com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:android/support/v4/提供者/DocumentsContractApi19.
我正在用java制作一个tic-tac-toe游戏,作为家庭作业。我有一个名为TicTacToe的父类和一个名为humanVsHuman的派生类。 下面的方法是在派生类中编写的。它提示用户输入他们想要输入游戏棋子的位置(X或O),然后从父类中调用两个方法:一个将X或O存储在名为setGb()的多功能数组中,另一个用名为displayBoard()的新棋子显示棋盘。 方法如下: 我收到以下运行时错误