Java教程

【力扣_两数之和】刷题思路

本文主要是介绍【力扣_两数之和】刷题思路,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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()方法。

 



这篇关于【力扣_两数之和】刷题思路的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!