-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTwoSum.kt
More file actions
69 lines (57 loc) · 1.54 KB
/
TwoSum.kt
File metadata and controls
69 lines (57 loc) · 1.54 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
66
67
68
69
package leetcode_problems.easy
import java.lang.Exception
import java.util.HashMap
import kotlin.math.abs
fun twoSum(nums: IntArray, target: Int): IntArray {
// var ans = intArrayOf()
// val map = mutableMapOf<Int, Int>()
// for (i in nums.indices) {
// if (map.contains(nums[i])) {
// ans = map[nums[i]]?.let { intArrayOf(it, i) }!!
// break
// } else {
// map[target - nums[i]] = i
// }
// }
// return ans
// //solution 2
// nums.forEach {i ->
// val list = nums.toMutableList()
// list.remove(i)
// list.forEach {j ->
// if (i + j == target) return intArrayOf(nums.indexOf(i) ,nums.indexOf(j) )
// }
// }
// throw Exception("Not Found")
// var l = 0
// var r = nums.size - 1
// val list = nums.sorted()
// // [2,3,4]
// list.forEach {
// val middle = abs(r - l) / 2
// if (list[l] + list[middle] == target) return intArrayOf(l, middle)
// else if (list[l] + list[middle] > target)
// r--
// else{
// l = nums.size / 2
// r = nums.size -1
// }
// }
// throw Exception("Not found")
//
//Solution 3
// val map = HashMap<Int, Int>()
// nums.forEachIndexed { i , num ->
// val diff = target - num
// if (map. containsKey(diff))
// return intArrayOf(map[diff]!! , i)
//
// map[num] = i
//
// }
return intArrayOf()
}
fun main() {
val ans = twoSum(intArrayOf(3, 2, 4), 6)
println(ans.asList().toString())
}