归并排序
litanyuan
这个作者很懒,什么都没留下…
展开
-
LeetCode-493. 翻转对、归并排序
给定一个数组 nums ,如果 i < j 且 nums[i] > 2*nums[j] 我们就将 (i, j) 称作一个重要翻转对。你需要返回给定数组中的重要翻转对的数量。示例 1:输入: [1,3,2,3,1]输出: 2来源:力扣(LeetCode)题目分析如果 i 、j 分别属于两个有序区间,并且 nums[i] > 2*nums[j] ,则大于 i 的元素也都满足需求,利用有序特点可以减少重复的比较操作。归并排序将两个有序的数组合并成一个有序数组称为归并。归并排.原创 2020-11-28 09:30:30 · 294 阅读 · 0 评论 -
LeetCode-327.区间和的个数、归并排序
给定一个整数数组 nums,返回区间和在 [lower, upper] 之间的个数,包含 lower 和 upper。区间和 S(i, j) 表示在 nums 中,位置从 i 到 j 的元素之和,包含 i 和 j (i ≤ j)。说明:最直观的算法复杂度是 O(n2) ,请在此基础上优化你的算法。示例:输入: nums = [-2,5,-1], lower = -2, upper = 2,输出: 3解释: 3个区间分别是: [0,0], [2,2], [0,2],它们表示的和分别为: -2,.原创 2020-11-07 11:10:59 · 286 阅读 · 0 评论 -
LeetCode-315.计算右侧小于当前元素的个数、归并排序
给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质:counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。示例: 输入: [5,2,6,1] 输出: [2,1,1,0]力扣(LeetCode)第315题归并排序将两个有序的数组合并成一个有序数组称为归并。归并排序包含了两个过程: ①:从上往下的分解:把当前区间一分为二,直至分解为若干个长度为1的子数组 ②:从下往上的合并:两个有序的子区域两两向上合并 如下图所示:.原创 2020-07-11 16:29:39 · 810 阅读 · 0 评论 -
力扣刷题-51.数组中的逆序对、归并排序、分治思想
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 示例 1: 输入: [7,5,6,4] 输出: 5分治思想 分治就是分而之,面对一个规模复杂的问题,把它分解成一系列的简单子问题,对子问题求解的结果进行合并从而实现对整个问题的求解。 通过不断的递归,每次尽可能的缩小问题的规模,直至满足基线条件;...原创 2020-04-24 14:23:56 · 352 阅读 · 0 评论