-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathhackerRankThreeNumberSum.js
More file actions
65 lines (55 loc) · 1.82 KB
/
hackerRankThreeNumberSum.js
File metadata and controls
65 lines (55 loc) · 1.82 KB
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
// * Complete the 'threeNumberSum' function below.
// *
// * The function is expected to return a 2D_INTEGER_ARRAY.
// * The function accepts following parameters:
// * 1. INTEGER_ARRAY arr
// * 2. INTEGER target -- DO 3 NUMBERS ADD UP TO THIS
// */
// UPER
// GO THRU ARRAY
// FIND 3 NUMBERS THAT ADD UP TO TARGET
// PUT THEM IN OUTPUT ARRAY
// SORT THEM HOW THEY WANT THEM
// RETURN ARRAY
// BETTER WAY THAN 3 NESTED LOOPS?
// MAKE SURE INPUT IS CORRECT, MAY NEED TO SUBTRACT FOR HACKER RANKS TESTS
function threeNumberSum(arr, target) {
const outputArr = []
// PLAN NESTED 3 LAYER FOR LOOP OF ARR
for (var i = 0; i < arr.length; i++) {
var firstLoopNum = arr[i]
// console.log('firstLoopNum', firstLoopNum)
for (var x = 0; x < arr.length; x++) {
var secondLoopNum = arr[x]
// console.log('secondLoopNum', secondLoopNum)
for (var y = 0; y < arr.length; y++) {
var thirdLoopNum = arr[y]
// console.log('thirdLoopNum', thirdLoopNum)
if (firstLoopNum + secondLoopNum + thirdLoopNum === target) {
// for (var t = 0; t < outputArr.length; t++) {
// } if() {
outputArr.push([firstLoopNum, secondLoopNum, thirdLoopNum])
// }
// }
}
}
}
console.log('outputArr', outputArr)
// get rid of duplicates
return output
// COMPARE EACH ITEM WITH EACH OTHER 3
// IF THEY ADD UP TO TARGET
// PUSH THEM TO OUTPUT ARRAY
// VERIFY ORDER - MAYBE JUST ASCENDING
}
}
// Test Cases
threeNumberSum([12, 3, 1, 2, -6, 5, -8, 6], 0) // => [[-8, 2, 6],[-8,3,5],-6,1,5]]
// threeNumberSum([1, 2, 3, 4, 5, 6, 7, 8, 9, 15], 30) // => [[6,9,15],[7,8,15]]
// threeNumberSum()
var array = [1, 2, 3, 4, 5]
// Getting sum of numbers
var sum = array.reduce(function (a, b) {
return a + b
}, 0)
console.log(sum) // Prints: 15