class Solution {
fun twoSum(nums: IntArray, target: Int): IntArray {
val results = IntArray(2)
for (i in 0 until nums.size) {
for (j in 0 until nums.size) {
if (i != j && nums[i] + nums[j] == target) {
results[0] = i
results[1] = j
break
}
}
}
return results
}
}
시간복잡도 : O(N^2)
공간복잡도 : O(N)
class Solution {
fun twoSum(nums: IntArray, target: Int): IntArray {
val results = IntArray(2)
val numMap = hashMapOf<Int, Int>()
for (i in 0 until nums.size) {
if (nums[i] in numMap) {
results[0] = i
results[1] = numMap[nums[i]]!!
} else {
numMap[target - nums[i]] = i
}
}
return results
}
}
시간복잡도 : O(N)
공간복잡도 : O(N)
class Solution {
fun twoSum(nums: IntArray, target: Int): IntArray {
val results = IntArray(2)
var temp = 0
val numSet = hashSetOf<Int>()
for (i in 0 until nums.size) {
if (nums[i] in numSet) {
results[0] = i
temp = target - nums[i]
break
} else {
numSet.add(target - nums[i])
}
}
for (i in 0 until nums.size) {
if (temp == nums[i]) {
results[1] = i
break
}
}
return results
}
}
시간복잡도 : O(N)
공간복잡도 : O(N)