(LeetCode) Two Sum

Two Sum

  • 분류 : Array
  • 난이도 : Easy

Problem

Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

You can return the answer in any order.

Example 1

1
2
3
Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Output: Because nums[0] + nums[1] == 9, we return [0, 1].

Example 2

1
2
Input: nums = [3,2,4], target = 6
Output: [1,2]

Example 3

1
2
Input: nums = [3,3], target = 6
Output: [0,1]

Constraints

  • 2 <= nums.length <= 10^3
  • -10^9 <= nums[i] <= 10^9
  • -10^9 <= target <= 10^9
  • Only one valid answer exists.

Solution

Exapnder
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
fun moveZeroes(nums: IntArray): Unit {
var index = 0
for (i in nums.indices) {
if (nums[i] != 0) {
nums[index++] = nums[i]
}
}

while (index < nums.size) {
nums[index++] = 0
}
}
}

Point of Thinking

  • nums 안에서 끝내야하므로 순회를 숙명
  • 0을 제외한 나머지 숫자들의 순서는 유지해주어야 하므로, sort 및 compareBy 등의 고민 없이 단순하게 풀이.