LeetCode day32
Diffculty: Hard
4. Median of Two Sorted Arrays
Topic: Array, Binary Search, Divide and Conquer
There are two sorted arrays nums1 and nums2 of size m and n respectively.
Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).
You may assume nums1 and nums2 cannot be both empty.
Example 1:
nums1 = [1, 3]
nums2 = [2]
The median is 2.0
Example 2:
nums1 = [1, 2]
nums2 = [3, 4]
The median is (2 + 3)/2 = 2.5
Approach1
call statistics lib
def findMedian(nums1, nums2):
nums1 += nums2
nums1.sort()
import statistics
res = statistics.median(nums1)
return res
Approach2
find the kth smallest number
def findMedian(nums1, nums2):
10. Regular Expression Matching
Topic: String, DP, Backtracking
Given an input string (s) and a pattern (p), implement regular expression matching with support for ‘.’ and ‘*‘.
- ’.’ Matches any single character.
- ‘*’ Matches zero or more of the preceding element. The matching should cover the entire input string (not partial).
Note:
- s could be empty and contains only lowercase letters a-z.
- p could be empty and contains only lowercase letters a-z, and characters like . or *.
Example 1:
Input:
s = "aa"
p = "a"
Output: false
Explanation: "a" does not match the entire string "aa".
Example 2:
Input:
s = "aa"
p = "a*"
Output: true
Explanation: '*' means zero or more of the preceding element, 'a'. Therefore, by repeating 'a' once, it becomes "aa".
Example 3:
Input:
s = "ab"
p = ".*"
Output: true
Explanation: ".*" means "zero or more (*) of any character (.)".
Example 4:
Input:
s = "aab"
p = "c*a*b"
Output: true
Explanation: c can be repeated 0 times, a can be repeated 1 time. Therefore, it matches "aab".
Example 5:
Input:
s = "mississippi"
p = "mis*is*p*."
Output: false
Approach1
Approach2
23. Merge k Sorted Lists
Topic: Linked list, Divide an Conquer, Heap
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
Example:
Input:
[
1->4->5,
1->3->4,
2->6
]
Output: 1->1->2->3->4->4->5->6
Approach1
Approach2
41. First Missing Positive
Topic: Array
Given an unsorted integer array, find the smallest missing positive integer.
Example 1:
Input: [1,2,0]
Output: 3
Example 2:
Input: [3,4,-1,1]
Output: 2
Example 3:
Input: [7,8,9,11,12]
Output: 1
Note:
Your algorithm should run in O(n) time and uses constant extra space.
Approach1
Approach2