需求:
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
我的答案(暴力解决法):
class Solution {
public int[] twoSum(int[] nums, int target) {
int[] ret = new int[2];
for(int i=0; i<nums.length; i++) {
for (int j=i+1; j<nums.length; j++) {
if ((nums[i] + nums[j]) == target ) {
ret[0] = i;
ret[1] = j;
}
}
}
return ret;
}
}
最有答案:
class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer,Integer> map = new HashMap<>();
for (int i=0; i<nums.length; i++) {
int temp = target - nums[i];
if (map.containsKey(temp))
return new int[]{map.get(temp), i};
map.put(nums[i], i);
}
throw new IllegalArgumentException("No two sum solution!");
}
}
相关推荐
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
在数据段中存放两个32位二进制无符号数DATA1和DATA2,编制一程序计算两数之和,结果存于RESULT单元中。
小学五年级下册数学两数之和奇偶性PPT教案.pptx
//给定一个整数数组和一个目标值,找出数组中和为目标值的两个数 //你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用 //示例: //给定 nums = [2, 7, 11, 15], target = 9 //因为 nums[0] + nums[1] = ...
#include <iostream> //预处理命令 using namespace std; //使用命名空间std int main( ) //主函数首部 { //函数体开始 int a,b,sum; //定义变量 cin>>a>>b; //输入语句 sum=a+b; //赋值语句 ...
编写程序实现如下功能:计算两个数之和,参与求和运算的每个数的值都必须在10-20之间,当任意一个数超出范围时,抛出自己的异常
android中使用jni返回两数之和,用C编写
我的第一个.NET应用程序,VB.NET 求两数之和,就是实现加法运算,代码如下: Private Sub BtnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAdd.Click Dim FirstNum As ...
在哈希表中查找一个key的时间复杂度到底是多少?–leetcode 1
两数之和.md
两数之和.c
python 实现 两数之和
两数之和.exe
python python_leetcode面试题解之两数之和TwoSum
1. 两数之和题目描述1. 两数之和题目链接Difficulty: 简单给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那
c# c#_Leetcode面试题解之第1题两数之和
两数之和 II - 输入有序数组.md
两数之和 II - 输入有序数组给定一个已按照 非递减顺序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target 。示例