Kotlin
kotlin 풀이
테스트코드
package leetcode
import org.junit.Test
import org.assertj.core.api.Assertions.assertThat
class PS1TwoSum {
@Test
fun test() {
val solution = Solution()
assertThat(solution.twoSum(intArrayOf(2,7,11,15), 9)).contains(0).contains(1)
assertThat(solution.twoSum(intArrayOf(3, 2, 4), 6)).contains(1).contains(2)
assertThat(solution.twoSum(intArrayOf(3, 3), 6)).contains(0).contains(1)
assertThat(solution.twoSum(intArrayOf(2, 5, 5, 11), 10)).contains(1).contains(2)
}
}
풀이
hashmap 이용
220 ms, 85.89%
package leetcode
import org.junit.Test
import org.assertj.core.api.Assertions.assertThat
class PS1TwoSum {
class Solution {
fun twoSum(nums: IntArray, target: Int): IntArray {
val result = IntArray(2)
val mapNums = HashMap<Int, Int>()
nums.forEachIndexed { index, item ->
mapNums.put(item, index)
}
nums.forEachIndexed { index, item ->
val findNum = target - item;
val foundIndex = mapNums.get(findNum)
if (foundIndex != null && foundIndex != index) {
result[0] = index
result[1] = foundIndex
return result
}
}
return result
}
}
@Test
fun test() {
val solution = Solution()
assertThat(solution.twoSum(intArrayOf(2,7,11,15), 9)).contains(0).contains(1)
assertThat(solution.twoSum(intArrayOf(3, 2, 4), 6)).contains(1).contains(2)
assertThat(solution.twoSum(intArrayOf(3, 3), 6)).contains(0).contains(1)
assertThat(solution.twoSum(intArrayOf(2, 5, 5, 11), 10)).contains(1).contains(2)
}
}
Last updated
Was this helpful?