实力的象征,勇士的战袍,胸口大大的logo仿佛在默语:哥是多么的牛逼
而这纯黑的战袍又映射着一张张在社区和难题奋斗时不屈的脸庞,他们大叫着冲向一道道难关,只是为了将来有一天能在商店中领取这荣誉的战袍,披上它,去迎接下一场战斗
前方不免有千难万坎,但只要有它我便心向朝阳,战斗吧!少年
刷题勇士留
mdzz----( _ _)ノ|不过今天我就开始LeeCode的刷题之旅倒是真的,每天来三题吧
算法
难度:简单(ノへ ̄、)
1.两数之和
给定一个整数数组
nums
和一个目标值target
,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]复制代码
难点:这道题的难点不在于如何得到答案而在于解法
方法一:暴力解法
思路:给两个for
循环,遍历所有的可能,然后 if
是否等于给定值如果等于就把值存入一个数组中return
代码:
var twoSum = function(nums, target) {
var n=nums.length
var hash=[]
for(var i=0;i<n;i++){
for(var j=i+1;j<n;j++){
if(nums[i]+nums[j]==target){
hash[0]=i
hash[1]=j
return hash
}
}
}
};复制代码
方法二:两遍哈希表
思路: