本文主要是介绍【力扣_两数之和】刷题思路,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
class Solution {
public int[] twoSum(int[] nums, int target) {
int[] result = new int[2];
HashMap<Integer, Integer> hash = new HashMap<>();
for(int i = 0 ; i < nums.length ;i++){
if(hash.containsKey(target - nums[i])){
result[0] = hash.get(target - nums[i]);
result[1] = i;
}
hash.put(nums[i],i);
}
return result;
}
}
//做题总结:
1.暴力算法与优化算法 比较
暴力算法使用两次遍历,时间复杂度为O(N²),空间复杂度为O(1);
优化算法明显以空间换时间,时间复杂度为O(N),空间复杂度为O(1);所以时间效率有明显的提升。
2.Map类型中的containsKey()和containsValue()函数
boolean containsKey(Object key)如果此映射包含指定键的映射关系,则返回 true。一般情况下,只有一一映射关系。
boolean containsValue(Object key)如果此映射包含指定键一对一或者一对多的映射值,则返回 true。一般情况下,包含一对一、一对多映射关系。
3.Map中的get()和put()方法。
这篇关于【力扣_两数之和】刷题思路的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!