返回总目录.
目录- 题目:
- Java
- 1.暴力法
- 2.哈希表求解
- C++
- 1.暴力法
- 哈希表求解
class Solution {
public int[] twoSum(int[] nums, int target) {
int i = 0;
int j = 0;
for (i = 0;i
结果:
效果很差
接下来是我看评论学的
2.哈希表求解
import java.util.HashMap;
class Solution {
public int[] twoSum(int[] nums, int target) {
int[] indexs = new int[2];
// 建立k-v ,一一对应的哈希表
HashMap hash = new HashMap();
for(int i = 0; i < nums.length; i++){
if(hash.containsKey(nums[i])){
indexs[0] = i;
indexs[1] = hash.get(nums[i]);
return indexs;
}
// 将数据存入 key为补数 ,value为下标
hash.put(target-nums[i],i);
}
return indexs;
}
}
结果:
效果很不错
C++
1.暴力法
class Solution {
public:
vector twoSum(vector& nums, int target) {
int i,j;
for(i=0;i
哈希表求解
class Solution {
public:
vector twoSum(vector& nums, int target) {
map a;//提供一对一的hash
vector b(2,-1);//用来承载结果,初始化一个大小为2,值为-1的容器b
for(int i=0;i0)
{
b[0]=a[target-nums[i]];
b[1]=i;
break;
}
a[nums[i]]=i;//反过来放入map中,用来获取结果下标
}
return b;
};
};



