牛客华为机试题库——https://www.nowcoder.com/ta/huawei(重点看)[题号 HJ开头]
牛客在线编程算法篇——https://www.nowcoder.com/exam/oj [题号NC开头]
剑指offer——https://www.nowcoder.com/ta/coding-interviews?page=1[题号 JZ开头]
力扣——https://leetcode-cn.com/problemset/all
1. 入门题
(1) 输入处理(重要): HJ5.进制转换
function handle(str: string) {
let x = 1;
const valueMap = { a: 10, b: 11, c: 12, d: 13, e: 14, f: 15 };
let result = 0;
str = str.slice(2).toLowerCase();
for (let i = str.length - 1; i >= 0; i--) {
result += x * (valueMap[str[i]] || str[i]);
x *= 16;
}
return result;
}
/**
tips:
2的8次幂
数学表达式 2^8
编程语言 2**8 Math.pow(2,8)
*/
const ji=Math.pow(2,3)
const ji2=2**3
const num='011'
parseInt(num, 2) // 2进制转10进制 3
parseInt(num).toString(2) // 10进制转2进制 '1011'
parseInt(num, 2).toString(2) // 2进制转10进制再转2进制 '11'
(2) 排列组合: NC61.两数之和
function twoSum(numbers, target) {
const numMap = {};
for (let i = 0; i < numbers.length; i++) {
const complement = target - numbers[i];
if (complement in numMap) {
return [numMap[complement] + 1, i + 1];
}
numMap[numbers[i]] = i;
}
return [];
}
/*
tips:
{}优先于Map;
变量命名;
const优先于let
*/

被折叠的 条评论
为什么被折叠?



