前言:
各位同学大家好,又到了我们的算法题目的
需求
/**
* 给定一个整数数组 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,小弟在这里