98. Validate Binary Search Tree
이진 트리가 유효한 이진 탐색 트리(Binary Search Tree, BST)인지 판별하는 것입니다. 노드의 왼쪽 서브트리에는 노드의 키보다 작은 키를 가진 노드만 포함되어 있습니다. 노드의 오른쪽 서브트리에는 노드의 키보다 큰 키를 가진 노드만 포함되어 있습니다. 왼쪽과 오른쪽 서브트리 모두 이진 탐색 트리여야 합니다. 예시 1: 입력: root = [2,1,3], 출력: true 예시 2: 입력: root = [5,1,4,null,null,3,6], 출력: false. 설명: 루트 노드의 값은 5이지만, 그 오른쪽 자식 노드의 값은 4입니다. 트리의 노드 수는 범위 [1, 10^4] 내에 있습니다. 노드의 값은 -2^31
2024. 4. 17.
2089. Find Target Indices After Sorting Array
0으로 시작하는 정수 배열 nums와 목표 요소 target이 주어집니다. 목표 인덱스는 nums[i] == target인 인덱스 i입니다. nums를 비감소 순서로 정렬한 후 nums의 목표 인덱스 목록을 반환하십시오. 목표 인덱스가 없으면 빈 목록을 반환합니다. 반환된 목록은 증가 순서로 정렬되어야 합니다. 예를 들어: 예제 1: 입력: nums = [1,2,5,2,3], target = 2 출력: [1,2] 설명: 정렬 후, nums는 [1, 2, 2 ,3,5]입니다. nums[i] == 2인 인덱스는 1과 2입니다. 예제 2: 입력: nums = [1,2,5,2,3], target = 3 출력: [3] 설명: 정렬 후, nums는 [1,2,2, 3 ,5]입니다. nums[i] == 3인 인덱스는 ..
2024. 3. 27.
162. Find Peak Element
어진 정수 배열에서 peak element를 찾는 문제입니다. Peak element는 해당 위치에서 좌우의 원소보다 큰 값을 갖는 원소를 의미합니다. 예를 들어, 배열 [1, 2, 3, 1]에서 3은 peak element입니다. 배열 [1, 2, 1, 3, 5, 6, 4]에서 6도 peak element입니다. 이 문제를 풀기 위한 일반적인 방법은 이진 검색(Binary Search)을 사용하는 것입니다. 이진 검색을 사용하면 O(log N)의 시간 복잡도로 peak element를 찾을 수 있습니다. public int FindPeakElement(int[] nums) { if (nums.Length == 0) { return -1; // 배열이 비어있는 경우 } // 배열의 길이가 1인 경우 if..
2023. 11. 16.