【077-Combinations(组合数)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题 Given two integers n and k, return all possible combinations of k numbers out of 1 … n.
For example,
If n = 4 and k = 2, a solution is...
分类:
编程语言 时间:
2015-07-30 07:11:55
阅读次数:
201
摘要: 本章所讨论的问题是在一个由n个不同数值构成的集合中选择第i个顺序统计量问题。主要讲的内容是如何在线性时间内O(n)时间内在集合S中选择第i小的元素,最基本的是选择集合的最大值和最小值。一般情况下选择的元素是随机的,最大值和最小值是特殊情况,书中重点介绍了如何采用分治算法来实现选择第i小的元素...
分类:
其他好文 时间:
2015-07-25 21:27:46
阅读次数:
245
题意就是差分后求形如ABA的串的个数,B的长度为M这是2011国家集训队互测的试题,是道好题,我直接给出出题人的题解吧:对于这种在线性序列上的组合计数问题,我们很容易想到一个工具:分治!分治算法在形如快速排序等地方能顺利优化算法,我们尝试将其运用至本题中。不妨设过程F(Left,Right)可以统计...
分类:
其他好文 时间:
2015-07-21 20:28:08
阅读次数:
137
归并排序是分治算法的一个典型的体现: 将原问题分解为若干的子问题进行求解就可以了。分治算法的步步骤:归并排序的步骤:第2-4行将原问题分成子问题,第5行将这些子问题进行合并。原代码:#ifndef MERGE_SORT_H#define MERGE_SORT_Hvoid mergeArr(int l...
分类:
编程语言 时间:
2015-07-17 20:46:25
阅读次数:
205
题目地址:SPOJ 1825
树分治的题果然除了模板题就是金牌题啊。。。这题是一道论文题,想了好长时间。。。。终于过了,,,,注意一个坑点,如果权值全部为负的话,是可以不选任意一条边的,这样权值为0。。。也就是说初始值要设为0。。。
具体看漆子超的论文《分治算法在树的路径问题中的应用》。。
代码如下:#include
#include
#includ...
分类:
其他好文 时间:
2015-07-10 16:42:27
阅读次数:
189
五大常用算法之一:分治算法分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如...
分类:
编程语言 时间:
2015-07-01 17:44:13
阅读次数:
150
比如你获得了一个投资某个股票的机会,并且,你已经准确知道了将来几天这一只股票的相对于前一天的插值,比如为[13,-3,-25,20,-3,-16,-23,18,20,-7,12,-5,-22,15,-4,7],那么就有一个问题,从那一天买入,哪一天卖出获益最大?这里就是一个最大字数组问题。
最大字数组问题:在一个数组中找出最大的非空连续子数组
常见方法,暴力求解找出所有的组合,共有C(n...
分类:
编程语言 时间:
2015-06-30 18:16:08
阅读次数:
200
基本思想
归并排序(Merge Sort)完全遵循上述分治法三个步骤:
1、分解:将要排序的n个元素的序列分解成两个具有n/2个元素的子序列;
2、解决:使用归并排序分别递归地排序两个子序列;
3、合并:合并两个已排序的子序列,产生原问题的解。
所以说归并排序一种分治算法的典型应用。
归并排序过程动态演示...
分类:
编程语言 时间:
2015-06-29 17:20:48
阅读次数:
111
1.什么是动态规划动态规划,和分治法一样,是通过组合子问题的解而解决整个问题的。但不同的是,分治算法是指将问题划分成一些独立的子问题,递归求解各子问题,然后合并子问题的解而得到原问题的解。而动态规划适用于子问题不是独立的情况,也就是各子问题包含公共的子子问题。动态规划对每个子子问题只求解一次,将其结...
分类:
编程语言 时间:
2015-06-24 01:57:15
阅读次数:
161
最大子数组的和 在给定的一个数组中,找出连续的一部分数组,使其中的元素和最大。例如输入1,-2,5,3,-3,7,-2,-1,输出的最大子数组和为12。 ①如果什么都不考虑,用最直接的办法来求解,即三重for循环来暴力求结果,该算法的时间复杂度为O(n^3)代码如下://本段代码引自编程之美
int MaxSum(int* A, int n)
{
int maximum = -INF;...
分类:
编程语言 时间:
2015-06-21 15:49:47
阅读次数:
124