首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >两个和LeetCode Java问题

两个和LeetCode Java问题
EN

Stack Overflow用户
提问于 2018-07-29 04:40:26
回答 3查看 1.4K关注 0票数 1

我正尝试在LeetCode上进行一次Java模拟面试。我有以下问题:

给定一个整数数组,返回这两个数字的索引,使它们相加为一个特定的目标。

您可以假设每个输入都只有一个解决方案,并且不能使用同一元素两次。

代码语言:javascript
运行
复制
Example:

Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

我正在尝试实现一个递归解决方案。但是,我在尝试运行我的代码时收到错误。

代码语言:javascript
运行
复制
class Solution {
    public int[] twoSum(int[] nums, int target) {
        int[] sumnums = nums.clone();
        //int[2] sol = {0,1};
        int[] sol = new int[]{0,1};

        sol = new int[2];
        int j=sumnums.length;
        int t=target;

        for(int i=0;i<sumnums.length;i++){
            if ((sumnums[i]+sumnums[j])==t){
                sol[0]=i;
                sol[1]=j;
                //return sol;
            }
        }
        j=j-1;
        twoSum(sumnums,t);
        return sol;

    }
}

错误:

代码语言:javascript
运行
复制
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
    at Solution.twoSum(Solution.java:12)
    at __DriverSolution__.__helper__(__Driver__.java:8)
    at __Driver__.main(__Driver__.java:54)

在我看来,这个错误可能与以下代码行有关:

代码语言:javascript
运行
复制
if ((sumnums[i]+sumnums[j])==t){

因此,我想知道这是否与语法相关的错误。我正在尝试检查两个数字是否相加为一个不同的数字。

由于这是对递归解决方案的一种天真的尝试,我很乐意接受任何其他批评。但我最关心的是让我在这个问题上的尝试能够与所有测试用例一起运行。

谢谢。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51575102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档