- 数组两个数和,在目标数组里找出2个值相加等于target。然后输出这2个数
let nums = [8, 2, 6, 5, 4, 1, 3]
let target = 7
let cont = [2,5]
function twoNumAdd(arr, target) {
if (Array.isArray(arr)) {
// 使用map将遍历过的数字存起来,空间换时间`
let map = {};
for (let i = 0; i < arr.length; i++) {
console.log('target - arr[i]',target - arr[i])
// 从map中查找是否有key 等于 target-nums[i],如果有,则条件成立,返回结果
if (map[target - arr[i]] !== undefined) {
return [target - arr[i], arr[i]];
} else {
// 条件不成立,将该值存起来
map[arr[i]] = i;
}
console.log('map',map)
}
}
return [];
}
console.log('twoNumAdd',twoNumAdd(nums,target))
- 版本号排序
function versionSort(arr) {
return arr.sort((a, b) => {
let i = 0;
const arr1 = a.split(".");
const arr2 = b.split(".");
while (true) {
// 取出相同位置的数字
const s1 = arr1[i];
const s2 = arr2[i];
i++;
// 若s1 或 s2 不存在,说明相同的位置已比较完成,接下来比较arr1 与 arr2的长度,长的版本号大
if (s1 === undefined || s2 === undefined) {
return arr2.length - arr1.length;
}
if (s1 === s2) continue;
// 比较相同位置的数字大小
return s2 - s1;
}
});
}
let versonArr = ['2.1', '0.402.1', '10.2.1', '5.1.2', '2.1.4.5']
console.log('VersionSort',versionSort(versonArr))