post-thumbnail

[LeetCode] Array Nesting - 21.09.01

📄 문제 nums라는 길이 n의 int 배열이 있고, [0, n-1] 범위의 원소가 하나씩 무작위로 배열되어 있다. ex) n = 6, [1, 3, 4, 5, 0, 2] 이 때, s[k] = {nums[k], nums[nums[k]], nums[nums[nums[k]]], ... }라는 배열을 만들 수 있는데, 최대 길이를 갖는 s 배열을 찾아서 그 길이를 return하는 것이 본 문제의 목표이다. 문제 링크 🔍 코드 ✅ 풀이 우선, 원소의 위치와 원소의 값이 같으면 s의 길이는 1이 된다. 1번 조건에 맞지 않는다면, 규칙에 따라 배열을 순회하게 될 것이고, 이 때 s의 길이가 nums의 길이의 반 정도

2021년 9월 2일
·
0개의 댓글
·
post-thumbnail

[LeetCode] Find Minimum in Rotated Sorted Array - 21.08.31

📄 문제 배열에서 최솟값을 찾는 문제. 단, 오름차순으로 정렬된 배열이 랜덤 횟수로 rotate ([1, 2, 3, 4, 5] -> [2, 3, 4, 5, 1]) 되어 있다는 조건이 존재한다. 그리고 코드는 O(log n)의 시간복잡도로 짜야한다. 문제 링크 🔍 코드 ✅ 풀이 O(log N) 시간 복잡도면 binary search가 가장 먼저 떠올라서 적용하였더니 풀렸다. binary search를 억지로 적용시키려 하면 풀리지 않고, if (nums[left] < nums[right]) 이 부분을 먼저 처리한 다음 구현하여야 한다.

2021년 8월 31일
·
0개의 댓글
·