常见算法知识

常见排序算法

时间和空间复杂度

  1. 两数之和
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var twoSum = function(nums, target) {
    for(let i=0;i<nums.length-1;i++){
    for(let j = i+1;j<nums.length;j++){
    if(num[i]+ num[j]=== target){
    return [nums[i], nums[j]]
    }
    }
    }
    }

时间复杂度—O(n2)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var twoSum = function(nums, target) {
let res = {};
for( let i = 0;i < nums.length; i++){
res[target- nums[i]] = nums[i];
}
for (let j = 0; j < nums.length; j++) {
<!-- if(nums[j] === res[j]){
return [nums[j],target-num[j]]
} -->
if(res[num[j]] !== undefined){
return [nums[j], res[nums[j]]]
}
}

}

时间复杂度— O(n)
空间复杂度— O(n)