-
[릿코드/js] 다시풀기 334. Increasing Triplet Subsequence코딩테스트 2023. 9. 15. 11:13
var increasingTriplet = function(nums) { let len = nums.length; let i = 0; let j = 1; let k = 2; if (len < 3) return false; while (i < j && j < len - 1) { while (j < k && k < len) { while (k < len) { if (nums[i] < nums[j] && nums[j] < nums[k]) return true; k++; } j++; k = j + 1; } i++; j = i + 1; k = j + 1; } return false; };
-> 처음 푼 풀이 3중 while문을 써서 O(n^3)의 시간복잡도로 풀었다.... 애초에 조건이 O(n)으로 풀라고 주어짐 당연히 테케 통과X...
var increasingTriplet = function(nums) { let firstNum = Infinity; let secondNum = Infinity; for (let current of nums) { if (current > firstNum && current > secondNum){ return true; } if (firstNum < current) { secondNum = current; } else { firstNum = current; } } return false; };
-> 타인의 풀이. 한번만 돌면서 세개의 값을 비교할 수 있다.
조건문에 의해 항상 firstnum < secondnum으로 유지됨. 이상태에서 현재 값이 secnondnum보다 크다면 true값 반환!
'코딩테스트' 카테고리의 다른 글
[릿코드 / js] 다시풀기 1631. Path With Minimum Effort (0) 2023.09.18 [릿코드/js] 1584. Min Cost to Connect All Points (0) 2023.09.16 [릿코드 / js] 332. Reconstruct Itinerary (0) 2023.09.14 [릿코드/js] 151. reverse words in string (0) 2023.09.14 [릿코드/js] 다시풀기 345 (0) 2023.09.13