Simply
进制转换
const parseInt = (line) => {
// 最简单的方法
// let a = parseInt(line, 16);
// console.log(a);
// 通过转换进制计算。
// 0xaa
// a*16^0 + a* 16 ^ 1
const str = line.substr(2);
const LetterMap = {A: 10, B:11, C:12, D:13, E:14, F:15};
let iter = 0;
const d = (n) => (n < 10 ? n : LetterMap[n])
for(let i = str.length - 1; i >= 0; i--){
iter = iter + d(str[i])*16**(str.length - 1 - i);
}
console.log(iter)
}
parseInt('0xAA')
两数之和
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param numbers int整型一维数组
* @param target int整型
* @return int整型一维数组
*/
function twoSum( numbers , target ) {
// write code here
// 暴力
// const len = numbers.length;
// for (let i = 0; i<= len-1; i++) {
// for(let j = i+ 1; j<=len-1;j++){
// if(numbers[i] + numbers[j] === target){
// return [i+1, j+1];
// }
// }
// }
// map
const map = new Map();
for(let i = 0; i <= numbers.length; i++){
if(map.has(target - numbers[i])){
return [map.get(target - numbers[i]), i+1]
}else {
map.set(numbers[i], i + 1)
}
}
}
module.exports = {
twoSum : twoSum
};
Map的思想是
- 判断条件, map中存在目标值-当前值的剩余值
- 如果存在就返回存储的下标,不存在就塞入当前项