입력으로 들어온 2개의 배열(nums1, nums2)이 이미 정렬되어 있는 상태이므로, 2개의 포인터(l = nums1의 요소를 가리킴, r = nums2의 요소를 가리킴)을 두고 작은 값부터 최종 배열에 추가하여 배열 병합을 수행하고 중간 값을 찾으면 된다.
class Solution { public double findMedianSortedArrays(int[] nums1, int[] nums2) { int nums1Length = nums1.length, nums2Length = nums2.length, numsLength = nums1Length + nums2Length; int[] nums = new int[numsLength]; int l = 0, r = 0, cursor = 0; while(l < nums1Length && r < nums2Length){ if(nums1[l] < nums2[r]){ nums[cursor] = nums1[l]; l++; } else{ nums[cursor] = nums2[r]; r++; } cursor++; } while(l < nums1Length){ nums[cursor] = nums1[l]; cursor++; l++; } while(r < nums2Length){ nums[cursor] = nums2[r]; cursor++; r++; } if(numsLength % 2 != 0) return nums[numsLength / 2]; else return ((double)nums[numsLength / 2 - 1] + (double)nums[numsLength / 2 ]) / 2.0d; } }
출처: LeetCode - Longest Common Prefix 난이도: 하 관련 기술: String 문제 요약: 입력 문자열들의 가장 긴 Prefix를 찾는 문제이다. 풀이일 2019년 10월 8일 풀이 방법 단순한 for문을 통해 풀 수 있는 문제이다. 가장 짧은 문자열의 길이를 ...
출처: LeetCode - Longest Substring Without Repeating Characters 난이도: 중 관련 기술: Sliding Window 문제 요약: 입력으로 주어진 문자열(s)에서 반복된 문자를 가지지 않는 최대 길이의 부분 문자열을 찾는 문제이다. 풀이일 2019년 10월 7일 ...
출처: HackerRank - Super Reduced String 난이도: 하 관련 기술: String, Recursion 문제 요약: 입력으로 주어진 문자열 내의 연속으로 2번 등장하는 문자를 제거하는 문제이다. 예를들어 aaabb가 나온다면 aaabb -> abb -> a가 된다. 풀이일 2019...
LeetCode - Longest Substring Without Repeating Characters
LeetCode - Super Reduced String