Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- hash table
- sorting
- simulation
- Stack
- 파이썬
- Matrix
- geometry
- 코테
- bit manipulation
- string
- greedy
- Counting
- 구현
- dynamic programming
- 자바
- Binary Tree
- 코딩테스트
- implement
- Number Theory
- Binary Search
- Method
- Tree
- database
- SQL
- java
- Class
- array
- Data Structure
- two pointers
- Math
Archives
- Today
- Total
코린이의 소소한 공부노트
[LeetCode/Easy] 2200. Find All K-Distant Indices in an Array 본문
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일 때 인덱스를 저장하려고했지만, 그 경우에는 시간 초과가 나온다.
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[LeetCode/Easy] 2215. Find the Difference of Two Arrays (0) | 2023.04.28 |
---|---|
[LeetCode/Easy] 2206. Divide Array Into Equal Pairs (0) | 2023.04.28 |
[LeetCode/Easy] 2190. Most Frequent Number Following Key In an Array (0) | 2023.04.27 |
[LeetCode/Easy] 2133. Check if Every Row and Column Contains All Numbers (0) | 2023.04.27 |
[프로그래머스/Lv.0] 무작위로 K개의 수 뽑기 (0) | 2023.04.27 |