Java求和算法不返回任何东西

标签 java algorithm sum

我正在尝试解决 Leetcode 上的两个求和算法:

给定一个整数数组,返回两个数字的索引,使它们加起来达到特定目标。您可能会假设每个输入都只有一个解决方案,并且您可能不会两次使用相同的元素。

然后想出了这个:

public class Leet {

    public static void main(String[] args) {
        System.out.println(Arrays.toString(twoSum(new int[]{1, 2, 3, 4, 5, 6}, 2)));
    }

    public static int[] twoSum(int[] nums, int target) {
        int[] answer = null;
        int i = 0;
        for (int j = nums[i]; i < nums.length; i++) {
            for (int x : nums) {
                if (x != j & (j + x) == target) {
                    int x2 = java.util.Arrays.asList(nums).indexOf(x);
                    answer[0] = i;
                    answer[1] = x2;
                } else {
                    return nums;
                }

            }

        }
        System.out.println("leet method executed");

        return answer;
    }
}

问题是它没有返回任何东西,没有打印出的语句。有什么想法吗?

最佳答案

查看一些修复。记住数组初始化和数组中值可以相同的情况。

public class Solution {
    public int[] twoSum(int[] nums, int target) {
        int[] answer = null;

        for(int i=0;i<nums.length;i++) {
            int value = nums[i];

            for(int j=i+1;j<nums.length;j++) {
                int x=nums[j];
                if ((value+x)==target) {
                    answer = new int[2]; 
                    answer[0]=i;
                    answer[1]=j; 
                }
            }
        }

        System.out.println("leet method executed");

        if (answer == null) {
            return nums;
        }

        return answer;
    }
}

关于Java求和算法不返回任何东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45521551/

相关文章:

java - 我应该为每个线程创建一个连接吗?

java - 如何配置aspectj忽略getter和setter

c# - 快速简单的哈希码组合

mysql - 按日期获取 VARCHAR 字段值的总和

MySQL 多个 SUM 返回相同的值

java - 如何使用 typedQuery 在 Criteria api 上添加分页?

java.sql.SQLSyntaxErrorException : ORA-01729: database link name expected while using Java stored procedure

algorithm - 按规则分配资源——模拟退火合适吗?

algorithm - 拼写检查重复字母

mysql - 按位置 ID 划分的每周销售额