算法題-兩數(shù)之和
题目描述:
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
示例
给定 nums = [2,4,5,6], target = 9
因为 nums[1] + nums[2] = 4 + 5 = 9
所以返回 [1, 2]
方法一:暴力法
遍历每个元素item,查找是否存在一个值与target-item,相等的元素
var twoSum = function(nums, target) {
for(let i=0;i<nums.length;i++){
for(let j=i+1;j<nums.length;i++){
if(nums[j]==target-nums[i]){
return [i,j]
}
}
}
};
时间复杂度:O(n2)
方法二:一次循环
遍历每个元素item,查找是否存在一个值与target-item,相等的元素
var twoSum = function(nums, target) {
for(let i=0;i<nums.length;i++){
let temp=target-nums[i];
let index = nums.indexOf(temp,i+1);
if (index != -1) {
return [i, index]
}
}
};
时间复杂度:O(n)
點(diǎn)擊查看更多內(nèi)容
1人點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦