在刷LeetCode时遇到了一题可以用到分治思想的题目,刚好前段时间有看到过关于分治思想的讲解,但是不是很理解,这里再学习一次。 分而治之(divide and conquer,D&C)——一种著名的递归式问题解决方法。 使用分治解决问题的过程包括两个步骤: 1.找出基线条件,这种条件必须尽可能简单 ...
分类:
编程语言 时间:
2018-04-20 23:43:13
阅读次数:
341
Description Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum. E ...
分类:
其他好文 时间:
2018-04-20 23:42:59
阅读次数:
288
//分治思想//分类 内部比较排序//数据结构 数组//最差时间复杂度 每次选取的基准都是最大或者最小的元素,导致每次只划分出//了一个分区。需要进行n-1次划分才能结束递归,时间复杂度为O(n^2)//最优时间复杂度 每次选取的基准都是中位数,这样每次都均匀的划分出两个区域//只需要logn次划分 ...
分类:
编程语言 时间:
2018-03-27 20:49:25
阅读次数:
245
UVALive - 3938 题意: 给出一个长度为n的整数序列D,你的任务是对m个询问作出回答。对于询问(a,b),需要找到两个下标x和y,使得a≤x≤y≤b,并且Dx+Dx+1+...+Dy尽量大。如果有多组满足条件的x和y,x应该尽量小。如果还有多解,y应该尽量小。 tags: 分治思想,线段 ...
分类:
其他好文 时间:
2018-02-19 12:39:47
阅读次数:
185
Jon fought bravely to rescue the wildlings who were attacked by the white-walkers at Hardhome. On his arrival, Sam tells him that he wants to go to Ol ...
分类:
其他好文 时间:
2018-02-18 12:08:36
阅读次数:
187
"快速排序"的思想很简单,整个排序过程只需要三步: (1)在数据集之中,选择一个元素作为"基准"(pivot)。 (2)所有小于"基准"的元素,都移到"基准"的左边;所有大于"基准"的元素,都移到"基准"的右边。 (3)对"基准"左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元 ...
分类:
编程语言 时间:
2018-02-15 00:19:21
阅读次数:
213
终于到了传说中的快速排序算法了,快速排序的思想和归并排序一样,都是采用分治思想,不同之处在于归并每次将数组一分为二,最后将小的数组进行比较,合并为大数组。快排是每次找一个主元,也就是基准数,按照这个基准数,把小于基准数的数放左边,大于基准数的数放右边,通过基准数来分组实现排序。所以快排的很重要一步就 ...
分类:
编程语言 时间:
2018-01-24 00:49:24
阅读次数:
185
Bamboo之吃我一拳 分析 当两个点的距离寻找最近点对距离,得到的最近距离能够使得可以出拳的组数最少,因为除了最近点对外其他组合均不符合条件。 在一堆点中找到两个点的距离最小,暴力的O(n^2)计算量很恐怖,可以用分治思想把问题变小: 把平面上的点分为两拨,距离最近的两个点只可能出现在:第一堆,第 ...
分类:
编程语言 时间:
2018-01-03 21:09:23
阅读次数:
268
归并排序(分治思想的运用)原理:将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的,然后再把有序的子序列合并为整天有序序列。分治算法步骤:第一步:划分。将原问题划分为几个子问题第二步:递归求解。递归求解每个子问题第三步:合并。将求解后的子问题合并成原问... ...
分类:
编程语言 时间:
2017-12-14 19:17:51
阅读次数:
111
题目链接:https://nanti.jisuanke.com/t/16443 我不会矩阵快速幂,所以只拿了60分, 发现归并排序掌握的并不熟练,借此良机复习一下。 重在归并排序分治思想,要牢记! ...
分类:
编程语言 时间:
2017-11-04 00:24:16
阅读次数:
247