1. 문제 개요
문제 링크 : 215. Kth Largest Element in an Array
Kth Largest Element in an Array - LeetCode
Can you solve this real interview question? Kth Largest Element in an Array - Given an integer array nums and an integer k, return the kth largest element in the array. Note that it is the kth largest element in the sorted order, not the kth distinct eleme
leetcode.com
- 주어진 배열에서 k번째로 큰값의 인덱스를 반환하는 문제
- 주의사항 정렬을 사용하지않고 탐색해야한다
2. 문제 풀이
정렬을 사용하지않고 조회한다에서 우선 배열의 선형 탐색을 진행하는걸 기준으로 잡았습니다.
이후 배열에서 가장 큰값을 찾아내고 해당값을 기준으로 순차적으로 값을 비교해가는 식으로 구현하였습니다.
LeetCode 요구 양식으로 코드 구현
var findKthLargest = function(nums, k) {
let largest = -Infinity;
for(let i=0;i<nums.length;i++){
if(nums[i] > largest) largest = nums[i];
}
const hash = {};
for(let i=0;i<nums.length;i++){
const diff = largest-nums[i];
hash[diff] = (hash[diff] || 0) + 1;
}
let count = 0;
let diff = 0;
while(count<k){
count += (hash[diff] || 0);
diff++;
}
return largest - diff + 1;
};
LeetCode 제출 결과
이렇게 구현에 성공하였습니다.
3. 시간 복잡도 계산
더보기
O(n) = O(n)
4. 개선 사항 및 어려웠던 점
정렬을 쓰지 않았기에 반복문을 여러번 사용해야 했고 이를 시간 복잡도를 높여야 했기에 이중 삼중 등의 반복문을 사용하지않고
개별로서 해결하게 구조를 짜는것이 가장 어려웠습니다.
5. 깃허브
관련 사항은 깃허브에 모두 기재되어 있습니다.
'LeetCode - Top Interview 150' 카테고리의 다른 글
[Java Script] 133. Clone Graph (0) | 2023.09.15 |
---|---|
[Java Script] 373. Find K Pairs with Smallest Sums (0) | 2023.09.11 |
[Java Script] 212. Word Search II (0) | 2023.09.11 |
[Java Script] 211. Design Add and Search Words Data Structure (0) | 2023.09.11 |
[Java Script] 208. Implement Trie (Prefix Tree) (0) | 2023.09.11 |