- 數(shù)組兩個數(shù)和,在目標數(shù)組里找出2個值相加等于target在验。然后輸出這2個數(shù)
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將遍歷過的數(shù)字存起來,空間換時間`
let map = {};
for (let i = 0; i < arr.length; i++) {
console.log('target - arr[i]',target - arr[i])
// 從map中查找是否有key 等于 target-nums[i]滨嘱,如果有射沟,則條件成立,返回結(jié)果
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) {
// 取出相同位置的數(shù)字
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;
// 比較相同位置的數(shù)字大小
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))