1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
export function findTwoNumbers1(arr: number[],n:number): number[] { const res: number[] = []; const length = arr.length if(length === 0) return res; for(let i = 0;i < length - 1;i++){ const n1 = arr[i] let flag = false for (let j = i + 1;j < length;j++){ const n2 = arr[j] if(n1 + n2 === n){ res.push(n1) res.push(n2) flag = true break } } if (flag) break; } return res }
export function findTowNumbers2(arr: number[], n: number): number[] { const res: number[] = [] const length = arr.length if(length === 0) return res let i = 0; let j = length - 1 while(i < j){ const n1 = arr[i] const n2 = arr[j] const sum = n1 + n2 if(sum > n) { j--; }else if(sum < n){ i++ }else { res.push(n1) res.push(n2) break } } return res }
const arr = [ 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 4, 7, 11, 15, ];
console.time("findTowNumbers1"); for (let i = 0; i < 100 * 10000; i++) { findTowNumbers1(arr, 15); } console.timeEnd("findTowNumbers1");
console.time("findTowNumbers2"); for (let i = 0; i < 100 * 10000; i++) { findTowNumbers2(arr, 15); } console.timeEnd("findTowNumbers2");
|