leetcode 算法第四集

143 阅读2分钟

前言:

各位同学大家好,又到了我们的算法题目的

需求

/**
 * 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。
 *
 * 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
 * 示例 1:
 * 输入:nums = [2,7,11,15], target = 9
 * 输出:[0,1]
 * 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
 *
 */

具体实现:

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

我们这边通过2层for循环嵌套 遍历这个数组 然后判断 2个下标对应值的和 相加等于我们设定的 target 就算是符合条件的然后我们返回一个 return new int[]{i,j}; 数组回去

完整代码:

import java.util.Arrays;

/**
 * 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。
 *
 * 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
 * 示例 1:
 *
 * 输入:nums = [2,7,11,15], target = 9
 * 输出:[0,1]
 * 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
 *
 */
public class NumberSum {

    public static void main(String[] args) {
        int[]nums1 = {2,6,7,15};
        int[]nums2= {3,2,4};
         int target2 = 6;
        int target = 9;
        System.out.println(twoSum(nums1,target).toString());
        System.out.println(twoSum(nums1,target)[0]);
        System.out.println(twoSum(nums1,target)[1]);
    }

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

    }
   
}

最后总结:

我们的算法题目我们每天会去更新,然后以文章的形式更新给大家, 最后希望我的文章能帮助到各位解决问题 ,以后我还会贡献更多有用的代码分享给大家。各位同学如果觉得文章还不错 ,麻烦给关注和star,小弟在这里