暴力解法 双for循环
class Solution {
public int[] twoSum(int[] nums, int target) {
int[] resultArray=new int[2];
for(int i=0;i<nums.length; i++){
for(int j=0;j<nums.length; j++){
if(i==j) continue;
if(nums[i]+nums[j]==target){
resultArray[0]=j;
resultArray[1]=i;
}
}
}
return resultArray;
}
}
看到加入哈希表的题解
哈希表:利用哈希函数,实现数据到存储位置的一对一映射,从而把数据的属性放在一张表里
哈希函数
功能:输入数据,生成整数
主要特点:1、传给它不同的参数、返回不同的整数
2、传给它同样的参数、返回相同的整数
参数不同 结果却相同 =冲突(collision)
MD5 的值来比较下载下来的文件是否相同
class Solution {
public int[] twoSum(int[] nums, int target) {
int[] resultArray=new int[2];
Map <Integer,Integer> map =new HashMap<>();
for(int i =0;i<nums.length;i++){
int temp=target-nums[i];
if(map.containsKey(temp)){
resultArray[1]=i;
resultArray[0]=map.get(temp);
}
map.put(nums[i],i);
}
return resultArray;
}
}