LeetCode记录
1. 两数之和
利用obj或map存储,查找的时候O(1)
而不必像数组一样遍历一遍才能查找O(n)
// 两遍独立的for循环,O(n)
var twoSum = function(nums, target) {
var obj = {
}
var len = nums.length
for(let i = 0; i < len; i++){
let cur = nums[i];
let prop = target - cur;
obj[prop] = i;
}
for(let i = 0; i < len; i++){
let cur = nums[i];
if(obj.hasOwnProperty(cur)){
if(i !== obj[cur]){
// 不能等于自己
return [i, obj[cur]];
}
}
}
};
7. 整数翻转
对于2/4/8/16进制可以通过移位运算符获得每一位
十进制的话,使用%求余运算符
var reverse = function(x) {
// 整数翻转,很巧的思路是利用栈的思想
var top, res = 0;
while(x!==0)