File tree Expand file tree Collapse file tree
Sprint-1/JavaScript/hasPairWithSum Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11/**
22 * Find if there is a pair of numbers that sum to a given target value.
33 *
4- * Time Complexity:
5- * Space Complexity:
6- * Optimal Time Complexity:
4+ * Time Complexity: o(n2) the function use 2 nested loop
5+ * Space Complexity:o(1)no additional significant memory used
6+ * Optimal Time Complexity: O(n) — in the refactored version using a Set for lookups
77 *
88 * @param {Array<number> } numbers - Array of numbers to search through
99 * @param {number } target - Target sum to find
1010 * @returns {boolean } True if pair exists, false otherwise
1111 */
12+ // export function hasPairWithSum(numbers, target) {
13+ // for (let i = 0; i < numbers.length; i++) {
14+ // for (let j = i + 1; j < numbers.length; j++) {
15+ // if (numbers[i] + numbers[j] === target) {
16+ // return true;
17+ // }
18+ // }
19+ // }
20+ // return false;
21+ // }
22+
1223export function hasPairWithSum ( numbers , target ) {
13- for ( let i = 0 ; i < numbers . length ; i ++ ) {
14- for ( let j = i + 1 ; j < numbers . length ; j ++ ) {
15- if ( numbers [ i ] + numbers [ j ] === target ) {
16- return true ;
17- }
24+ const numbersNeeded = new Set ( ) ; // stores numbers we've already seen
25+
26+ for ( const num of numbers ) {
27+ const requiredNumber = target - num ;
28+ if ( numbersNeeded . has ( requiredNumber ) ) {
29+ return true ; // found a pair!
1830 }
31+ numbersNeeded . add ( num ) ; // remember current number
1932 }
20- return false ;
33+
34+ return false ; // no pair found
2135}
You can’t perform that action at this time.
0 commit comments