코딩테스트 풀이/JAVA
[LeetCode/Easy] 2200. Find All K-Distant Indices in an Array
무지맘
2023. 4. 27. 21:18
1. Input
1) int[] nums
2) int key
3) int k
2. Output
1) 다음 조건을 만족하는 요소의 인덱스를 담은 리스트를 반환
- [i-k, i+k]번째에 key가 있어야 한다.
- 인덱스는 오름차순으로 정렬되어야 한다.
3. Constraint
1) 1 <= nums.length <= 1000
2) 1 <= nums[i] <= 1000
3) key는 nums의 요소 중 1개이다.
4) 1 <= k <= nums.length
4. Example
Input: nums = [3,4,9,1,3,9,5], key = 9, k = 1 -> Output: [1,2,3,4,5,6]
설명: 2번째, 5번째 요소가 key이므로 [2-1.2+1], [5-1,5+1] = [1,6]이 리스트에 담긴다.
5. Code
1) 첫 코드(2023/04/27)
class Solution {
public List<Integer> findKDistantIndices(int[] nums, int key, int k) {
List<Integer> list = new ArrayList<>();
for(int i=0 ; i<nums.length ; i++){
for(int j=Math.max(0,i-k) ; j<Math.min(nums.length,i+k+1) ; j++)
if(nums[j]==key){
list.add(i); break;
}
}
return list;
}
}
- nums[i]==key일 때 인덱스를 저장하려고했지만, 그 경우에는 시간 초과가 나온다.