返回总目录.
目录- 题目:
- 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 ,一一对应的哈希表 HashMaphash = 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: vectortwoSum(vector & nums, int target) { int i,j; for(i=0;i 哈希表求解 class Solution { public: vectortwoSum(vector & nums, int target) { map a;//提供一对一的hash vector b(2,-1);//用来承载结果,初始化一个大小为2,值为-1的容器b for(int i=0;i 0) { b[0]=a[target-nums[i]]; b[1]=i; break; } a[nums[i]]=i;//反过来放入map中,用来获取结果下标 } return b; }; }; 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)