Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example:
Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1].
var twoSum = function(nums, target) {
var len = nums.length,i,j;
for(i = 0; i<len; i++){
for(j = i+1; j<len; j++){
if(nums[i]+nums[j] == target){
return [i,j]
}
else {
continue;
}
}
}
};
学了一段时间javascript了,第一次尝试用js刷题,才发现js基础还差很多呢。
这道题目很Easy,脑子首先呈现的还是c++语法...而最近学的js竟然是空白...emmmm......
借此补一波js数组循环:
1. 普通for循环
简单而常用的一种方法,上面题采用的就是该方法
for(var i = 0; i < arr.length; i++) {
arr[i]...
}
2. 优化版for循环
使用临时变量缓存数组长度,避免重复获取数组长度。
for(var i = 0, len = arr.length; i < len; i++) {
arr[i]...
}
3. forEach循环
数组自带的方法,比较常用,性能比普通for循环较弱。
arr.forEach(function(el,index){
arr[index]
el
});
4.for...in...循环
很常用,效率似乎很低
for(var index in arr){
arr[index]
}
5.for...of...循环
需要ES6支持
for(var ele of arr){
ele
}
6. map
var temp=arr.map(function(val,index){
console.log(val);
return val*val
})