大白的故事 大白的故事
首页
  • 学习笔记

    • LeetCode题解导航
  • 学习笔记

    • TypeScript笔记
页面
技术
  • 友情链接
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
dbdgs

大白的故事

终身学习者
首页
  • 学习笔记

    • LeetCode题解导航
  • 学习笔记

    • TypeScript笔记
页面
技术
  • 友情链接
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • leetcode

    • LeetCode题解
    • leetcode1 两数之和[简单难度]
    • leetcode2 Add Two Numbers
    • leetcode3 Longest Substring Without Repeating Characters
    • leetcode4 寻找两个正序数组的中位数[困难难度]
      • leetcode5 Longest Palindromic Substring
      • leetcode6 ZigZag Conversion
      • leetcode7 Reverse Integer
      • leetcode8 String to Integer (atoi)
      • leetcode9 Palindrome Number
      • leetcode10 Regular Expression Matching
      • leetcode11-盛最多水的容器[中等难度]
      • leetcode12 Integer to Roman
      • leetcode13 Roman to Integer
      • leetcode14 Longest Common Prefix
      • leetcode15 3Sum
      • leetcode16 3Sum Closest
      • leetcode17 Letter Combinations of a Phone Number
      • leetcode18 4Sum
      • leetcode19 Remove Nth Node From End of List
      • leetcode20 Valid Parentheses
      • leetcode21 Merge Two Sorted Lists
      • leetcode22 Generate Parentheses
      • leetcode23 Merge k Sorted Lists
      • leetcode24 Swap Nodes in Pairs
      • leetcode25 Reverse Nodes in k-Group
      • leetcode26 Remove Duplicates from Sorted Array
      • leetcode27 Remove Element
      • leetcode28 Implement strStr()
      • leetcode29 Divide Two Integers
      • leetcode30 Substring with Concatenation of All Words
      • leetcode31 Next Permutation
      • leetcode32 Longest Valid Parentheses
      • leetcode33 Search in Rotated Sorted Array
      • leetcode34 Find First and Last Position of Element in Sorted Array
      • leetcode35 Search Insert Position
      • leetcode36 有效的数独[中等难度]
      • leetcode37 Sudoku Solver
      • leetcode38 外观数列(报数)【中等难度】
      • leetcode39 Combination Sum
      • leetcode40 Combination Sum II
      • leetcode41 First Missing Positive-zh
      • leetcode42 Trapping Rain Water-zh
      • leetcode43 Multiply Strings-zh
      • leetcode44 Wildcard Matching-zh
      • leetcode45 Jump Game II-zh
      • leetcode46 Permutations-zh
      • leetcode47 Permutations II-zh
      • leetcode48 Rotate Image-zh
      • leetcode49 Group Anagrams-zh
      • leetcode50 Pow(x, n)-zh
      • leetcode51 N-Queens-zh
      • leetcode52 N-Queens II-zh
      • leetcode53 Maximum Subarray-zh
      • leetcode54 Spiral Matrix-zh
      • leetcode55 Jump Game-zh
      • leetcode56 Merge Intervals-zh
      • leetcode57 Insert Interval-zh
      • leetcode58 Length of Last Word-zh
      • leetcode59 Spiral Matrix II-zh
      • leetcode60 Permutation Sequence-zh
      • leetcode61 Rotate List-zh
      • leetcode62 Unique Paths-zh
      • leetcode63 Unique Paths II-zh
      • leetcode64 Minimum Path Sum-zh
      • leetcode65 Valid Number-zh
      • leetcode66 Plus One-zh
      • leetcode67 Add Binary-zh
      • leetcode68 Text Justification-zh
      • leetcode69 Sqrt(x)-zh
      • leetcode70 Climbing Stairs-zh
      • leetcode71 Simplify Path-zh
      • leetcode72 Edit Distance-zh
      • leetcode73 Set Matrix Zeroes-zh
      • leetcode74 Search a 2D Matrix-zh
      • leetcode75 Sort Colors-zh
      • leetcode76 Minimum Window Substring-zh
      • leetcode77 Combinations-zh
      • leetcode78 Subsets-zh
      • leetcode79 Word Search-zh
      • leetcode80 Remove Duplicates from Sorted Array II-zh
      • leetcode81 Search in Rotated Sorted Array II-zh
      • leetcode82 Remove Duplicates from Sorted List II-zh
      • leetcode83 Remove Duplicates from Sorted List-zh
      • leetcode84 Largest Rectangle in Histogram-zh
      • leetcode85 Maximal Rectangle-zh
      • leetcode86 Partition List-zh
      • leetcode87 Scramble String-zh
      • leetcode88 Merge Sorted Array-zh
      • leetcode89 Gray Code-zh
      • leetcode90 Subsets II-zh
      • leetcode91 Decode Ways-zh
      • leetcode92 Reverse Linked List II-zh
      • leetcode93 Restore IP Addresses-zh
      • leetcode94 Binary Tree Inorder Traversal-zh
      • leetcode95 Unique Binary Search Trees II-zh
      • leetcode96 Unique Binary Search Trees-zh
      • leetcode97 Interleaving String-zh
      • leetcode98 Validate Binary Search Tree-zh
      • leetcode99 Recover Binary Search Tree-zh
      • leetcode100 Same Tree-zh
      • leetcode101 Symmetric Tree-zh
      • leetcode102 Binary Tree Level Order Traversal-zh
      • leetcode103 Binary Tree Zigzag Level Order Traversal-zh
      • leetcode104 Maximum Depth of Binary Tree-zh
      • leetcode105 Construct Binary Tree from Preorder and Inorder Traversal-zh
      • leetcode106 Construct Binary Tree from Inorder and Postorder Traversal-zh
      • leetcode107 Binary Tree Level Order Traversal II-zh
      • leetcode108 Convert Sorted Array to Binary Search Tree-zh
      • leetcode109 Convert Sorted List to Binary Search Tree-zh
      • leetcode110 Balanced Binary Tree-zh
      • leetcode111 Minimum Depth of Binary Tree-zh
      • leetcode112 Path Sum-zh
      • leetcode113 Path Sum II-zh
      • leetcode114 Flatten Binary Tree to Linked List-zh
      • leetcode115 Distinct Subsequences-zh
      • leetcode116 Populating Next Right Pointers in Each Node-zh
      • leetcode117 Populating Next Right Pointers in Each Node II-zh
      • leetcode118 Pascal's Triangle-zh
      • leetcode119 Pascal's Triangle II-zh
      • leetcode120 Triangle-zh
      • leetcode121 Best Time to Buy and Sell Stock-zh
      • leetcode122 Best Time to Buy and Sell Stock II-zh
      • leetcode123 Best Time to Buy and Sell Stock III-zh
      • leetcode124 Binary Tree Maximum Path Sum-zh
      • leetcode125 Valid Palindrome-zh
      • leetcode126 Word Ladder II-zh
      • leetcode127 Word Ladder-zh
      • leetcode128 Longest Consecutive Sequence-zh
      • leetcode129 Sum Root to Leaf Numbers-zh
      • leetcode130 Surrounded Regions-zh
      • leetcode131 Palindrome Partitioning-zh
      • leetcode132 Palindrome Partitioning II-zh
      • leetcode133 Clone Graph-zh
      • leetcode134 Gas Station-zh
      • leetcode135 Candy-zh
      • leetcode136 Single Number-zh
      • leetcode137 Single Number II-zh
      • leetcode138 Copy List with Random Pointer-zh
      • leetcode139 Word Break-zh
      • leetcode140 Word Break II-zh
      • leetcode141 Linked List Cycle-zh
      • leetcode142 Linked List Cycle II-zh
      • leetcode143 Reorder List-zh
      • leetcode144 Binary Tree Preorder Traversal-zh
      • leetcode145 Binary Tree Postorder Traversal-zh
      • leetcode146 Lru Cache-zh
      • leetcode147 Insertion Sort List-zh
      • leetcode148 Sort List-zh
      • leetcode149 Max Points on a Line-zh
      • leetcode150 Evaluate Reverse Polish Notation-zh
      • leetcode151 Reverse Words in a String-zh
      • leetcode152 Maximum Product Subarray-zh
      • leetcode153 Find Minimum in Rotated Sorted Array-zh
      • leetcode154 Find Minimum in Rotated Sorted Array II-zh
      • leetcode155 Min Stack-zh
      • leetcode156 Binary Tree Upside Down-zh
      • leetcode157 Read N Characters Given Read4-zh
      • leetcode158 Read N Characters Given Read4 II - Call multiple times-zh
      • leetcode159 Longest Substring with At Most Two Distinct Characters-zh
      • leetcode160 Intersection of Two Linked Lists-zh
      • leetcode161 One Edit Distance-zh
      • leetcode162 Find Peak Element-zh
      • leetcode163 Missing Ranges-zh
      • leetcode164 Maximum Gap-zh
      • leetcode165 Compare Version Numbers-zh
      • leetcode166 Fraction to Recurring Decimal-zh
      • leetcode167 Two Sum II - Input array is sorted-zh
      • leetcode168 Excel Sheet Column Title-zh
      • leetcode169 Majority Element-zh
      • leetcode170 Two Sum III - Data structure design-zh
      • leetcode171 Excel Sheet Column Number-zh
      • leetcode172 Factorial Trailing Zeroes-zh
      • leetcode173 Binary Search Tree Iterator-zh
      • leetcode174 Dungeon Game-zh
      • leetcode175 Combine Two Tables-zh
      • leetcode176 Second Highest Salary-zh
      • leetcode177 Nth Highest Salary-zh
      • leetcode178 Rank Scores-zh
      • leetcode179 Largest Number-zh
      • leetcode180 Consecutive Numbers-zh
      • leetcode181 Employees Earning More Than Their Managers-zh
      • leetcode182 Duplicate Emails-zh
      • leetcode183 Customers Who Never Order-zh
      • leetcode184 Department Highest Salary-zh
      • leetcode185 Department Top Three Salaries-zh
      • leetcode186 Reverse Words in a String II-zh
      • leetcode187 Repeated DNA Sequences-zh
      • leetcode188 Best Time to Buy and Sell Stock IV-zh
      • leetcode189 Rotate Array-zh
      • leetcode190 Reverse Bits-zh
      • leetcode191 Number of 1 Bits-zh
      • leetcode192 Word Frequency-zh
      • leetcode193 Valid Phone Numbers-zh
      • leetcode194 Transpose File-zh
      • leetcode195 Tenth Line-zh
      • leetcode196 Delete Duplicate Emails-zh
      • leetcode197 Rising Temperature-zh
      • leetcode198 House Robber-zh
      • leetcode199 Binary Tree Right Side View-zh
      • leetcode200 Number of Islands-zh
      • leetcode201 Bitwise AND of Numbers Range-zh
      • leetcode202 Happy Number-zh
      • leetcode203 Remove Linked List Elements-zh
      • leetcode204 Count Primes-zh
      • leetcode205 Isomorphic Strings-zh
      • leetcode206 Reverse Linked List-zh
      • leetcode207 Course Schedule-zh
      • leetcode208 Implement Trie (Prefix Tree)-zh
      • leetcode209 Minimum Size Subarray Sum-zh
      • leetcode210 Course Schedule II-zh
      • leetcode211 Design Add and Search Words Data Structure-zh
      • leetcode212 Word Search II-zh
      • leetcode213 House Robber II-zh
      • leetcode214 Shortest Palindrome-zh
      • leetcode215 Kth Largest Element in an Array-zh
      • leetcode216 Combination Sum III-zh
      • leetcode217 Contains Duplicate-zh
      • leetcode218 The Skyline Problem-zh
      • leetcode219 Contains Duplicate II-zh
      • leetcode220 Contains Duplicate III-zh
      • leetcode221 Maximal Square-zh
      • leetcode222 Count Complete Tree Nodes-zh
      • leetcode223 Rectangle Area-zh
      • leetcode224 Basic Calculator-zh
      • leetcode225 Implement Stack using Queues-zh
      • leetcode226 Invert Binary Tree-zh
      • leetcode227 Basic Calculator II-zh
      • leetcode228 Summary Ranges-zh
      • leetcode229 Majority Element II-zh
      • leetcode230 Kth Smallest Element in a BST-zh
      • leetcode231 Power of Two-zh
      • leetcode232 Implement Queue using Stacks-zh
      • leetcode233 Number of Digit One-zh
      • leetcode234 Palindrome Linked List-zh
      • leetcode235 Lowest Common Ancestor of a Binary Search Tree-zh
      • leetcode236 Lowest Common Ancestor of a Binary Tree-zh
      • leetcode237 Delete Node in a Linked List-zh
      • leetcode238 Product of Array Except Self-zh
      • leetcode239 Sliding Window Maximum-zh
      • leetcode240 Search a 2D Matrix II-zh
      • leetcode241 Different Ways to Add Parentheses-zh
      • leetcode242 Valid Anagram-zh
      • leetcode243 Shortest Word Distance-zh
      • leetcode244 Shortest Word Distance II-zh
      • leetcode245 Shortest Word Distance III-zh
      • leetcode246 Strobogrammatic Number-zh
      • leetcode247 Strobogrammatic Number II-zh
      • leetcode248 Strobogrammatic Number III-zh
      • leetcode249 Group Shifted Strings-zh
      • leetcode250 Count Univalue Subtrees-zh
      • leetcode251 Flatten 2D Vector-zh
      • leetcode252 Meeting Rooms-zh
      • leetcode253 Meeting Rooms II-zh
      • leetcode254 Factor Combinations-zh
      • leetcode255 Verify Preorder Sequence in Binary Search Tree-zh
      • leetcode256 Paint House-zh
      • leetcode257 Binary Tree Paths-zh
      • leetcode258 Add Digits-zh
      • leetcode259 3Sum Smaller-zh
      • leetcode260 Single Number III-zh
    • leetcode-p2

    • 算法
    • leetcode
    geekzl.com
    2021-07-17

    leetcode4 寻找两个正序数组的中位数【困难难度】

    # 4. 寻找两个正序数组的中位数 (opens new window)

    # 英文题目: Median of two sorted arrays

      ●  难度: 困难

    给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。

    示例 1:

    输入:nums1 = [1,3], nums2 = [2]
    输出:2.00000
    解释:合并数组 = [1,2,3] ,中位数 2
    
    1
    2
    3

    示例 2:

    输入:nums1 = [1,2], nums2 = [3,4]
    输出:2.50000
    解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5
    
    1
    2
    3

    示例 3:

    输入:nums1 = [0,0], nums2 = [0,0]
    输出:0.00000
    
    1
    2

    示例 4:

    输入:nums1 = [], nums2 = [1]
    输出:1.00000
    
    1
    2

    示例 5:

    输入:nums1 = [2], nums2 = []
    输出:2.00000
    
    1
    2

    提示:

    • nums1.length == m
    • nums2.length == n
    • 0 <= m <= 1000
    • 0 <= n <= 1000
    • 1 <= m + n <= 2000
    • -106 <= nums1[i], nums2[i] <= 106

    **进阶:**你能设计一个时间复杂度为 O(log (m+n)) 的算法解决此问题吗?


    # 思路

    先合并两个有序数组,然后根据数组长度的奇偶来取到中位数。如果是偶数个,就取中间两个的平均数;如果是奇数个,直接取最中间的即可。

    与 leetcode 88. 合并两个有序数组 类似。


    # 已AC的C++代码:

    class Solution {
    public:
        double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
            vector<int> nums;         
            double res;
            int m = nums1.size();
            int n = nums2.size();
            int len;
    
            int i = 0, j = 0;
            while (i < m && j < n)  // 只要一个指针扫到数组末尾,循环结束
            {
                if(nums1[i] <= nums2[j])
                {
                    nums.push_back(nums1[i]);
                    i++;
                }
                else {
                    nums.push_back(nums2[j]);
                    j++;
                }
            }
    
            while(i < m)  // 数组nums1没跑完,nums2已跑完时
            {
                nums.push_back(nums1[i]);
                i++;
            }
    
            while(j < n)  // 数组nums2没跑完,nums1已跑完时
            {
                nums.push_back(nums2[j]);
                j++;
            }
            len = nums.size();
            if(len % 2 == 0)
            {
                res = (nums[len/2] + nums[len/2-1])/2.0;
            }
            else res = nums[len/2];
    
            return res;
        }
    };
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44

    参考: https://leetcode-cn.com/submissions/detail/194261796/ (opens new window)

    编辑 (opens new window)
    #leetcode
    上次更新: 2021/10/30, 12:58:38
    leetcode3 Longest Substring Without Repeating Characters
    leetcode5 Longest Palindromic Substring

    ← leetcode3 Longest Substring Without Repeating Characters leetcode5 Longest Palindromic Substring→

    最近更新
    01
    leetcode2 Add Two Numbers
    07-19
    02
    leetcode3 Longest Substring Without Repeating Characters
    07-19
    03
    leetcode5 Longest Palindromic Substring
    07-19
    更多文章>
    Theme by Vdoing | Copyright © 2020 大白的故事 | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式