题目:给定一个整数数组nums和一个目标值target,请找出数组中和为目标值的两个整数,并返回它们的数组标记。您可以假设每个输入只有一个答案。但是,您不能在此数组中重复使用相同的元素。给定一个整数数组,返回两个数字的索引,使它们加起来等于一个特定的目标。您可能会假设每个输入只有一个解决方案,并且您可能不会两次使用相同的元素。例子:给定nums=[2,7,11,15],target=9因为nums[0]+nums[1]=2+7=9,return[0,1]解题思路:暴力耗尽:outerloop遍历每一个元素x,内层循环查找是否有一个目标元素的值等于target-x,返回相等的目标元素和x的索引。时间复杂度O(n^2),效率太低,pass。哈希表:哈希映射(map,dict),key保存元素,value保存元素索引。两种遍历方式:第一种遍历将所有元素及其索引保存到hashmap中,第二种遍历找到??等于target-x的target元素一种遍历方式:ify=target-x,thenx=target-y,所以遍历hashmap中是否存在值等于target-x的target元素。例子:nums=[2,11,7,15],target=9,hashmap={}遍历:i=0:target-x=9-2=7,7在hashmap中不存在,则x(2)添加hashmap,hashmap={2:0}i=1:target-x=9-11=-2,-2在hashmap中不存在,则x(-2)加入hashmap,hashmap={2:0,11:1}i=2:target-x=9-7=2,hashmap中存在2,则返回列表[2,0]代码:二次遍历(Java):classSolution{publicint[]twoSum(int[]nums,inttarget){Map
