Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.
You may assume no duplicates in the array....
分类:
其他好文 时间:
2014-08-10 18:48:50
阅读次数:
203
1. 动态规划,使用一个数组保存当前的最大递增子序列长度,时间复杂度为O(N^2)
# include
# include
# include
using namespace std;
int longestsub(int a[],int n)
{
int *dis=(int *)malloc((n+1)*sizeof(int));
dis[0]=1;
int i,j;
for(...
分类:
其他好文 时间:
2014-08-09 13:30:07
阅读次数:
221
Flyer
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1537 Accepted Submission(s): 552
Problem Description
The new semester begi...
分类:
其他好文 时间:
2014-08-09 13:29:57
阅读次数:
191
《算法之道》精华 经典算法部分
本书作者绉恒明,作者另有一本书《数据结构之弦》,以及《操作系统之哲学原理》都是很好的书这本书可以算得上是深入浅出,文笔很好,作者添加了很多自己的思考本文包括经典算法部分
第十章 排序与次序
插入排序
从无序部分抽取一张插入有序部分为原地排序,无需占用临时存储空间最优情况下为O(n),平均O(n^2)
折半插入排序
插入时使用二分查找
归...
分类:
其他好文 时间:
2014-08-09 11:36:47
阅读次数:
238
冒泡排序:#include #include #include #define N 100000#define M 100000void show_arr(int * a,int n){ int i; for(i = 0; i a[j+1]) { temp = a[j]; a[j] = a[j+1]...
分类:
其他好文 时间:
2014-08-09 00:00:36
阅读次数:
357
盒子中有n张卡片,上面的数字分别为k1,k2,...,kn。你有4次机会,每抽一次,记录下卡片上的数字,再将卡片放回盒子中。如果4个数字的和等于m。则你就赢得游戏,否则就是输。直觉上,赢的可能性太低了。请你给出程序,判断是否有赢的可能性。尽量提高方法的效率。
分析:这个题目,和之前Google的一个概率的题目是类似的,当然解决的方法也是类似的,思路大家可以找找前面的题目,不再赘述。这个题目其...
分类:
其他好文 时间:
2014-08-08 16:10:16
阅读次数:
215
Description
You have just moved from Waterloo to a big city. The people here speak an incomprehensible dialect of a foreign language. Fortunately, you have a dictionary to help you understand...
分类:
其他好文 时间:
2014-08-08 12:47:45
阅读次数:
296
说说:这道题初看完全不知道如何下手,但最终也不过就是个二分查找而已,其实不用二分也行,从1开始遍历从显示的结果来看花费的时间是一样的。首先,讨论N是正数的情况。很明显这是个等差数列求和的问题,当总和任然小于N的时候,那么显然此时的n还不够大。当然若直接等于N了,那输出答案就好了。如果最后总和大于N了,但两者之差为奇数,这显然是不行的,因为把序列中任何一个数变为其相反数,那总和都相当于减去一个偶数。所以此时n需要进一步变大,直到两者的差为偶数。最后将序列中的某些正号变为负号,不过具体的我们不用管,问题就解决啦...
分类:
其他好文 时间:
2014-08-07 15:48:20
阅读次数:
232
二分查找法与我们在孩童时期玩过的猜数的游戏一样,这个游戏里一个朋友会让你猜他正想的一个1至100的数,当你猜了一个数后,他会告诉你三种选择的一个:你猜的比她想的大,或小,或猜中了。为了能用最少的次数猜中,必须从50开始猜,如果她说你猜的太小,则推出那个数在51-100之间,所以下一次猜75((51....
分类:
编程语言 时间:
2014-08-07 12:43:29
阅读次数:
234
题目:输入n个整数,找出其中最小的k个数。
《剑指offer》给出了两种实现算法:
算法1:采用Partition加递归法,该算法可以说是快速排序和二分查找的有机结合。算法的时间复杂度为O(n),缺点在于在修改Partition的过程中会修改原数组的值。
算法2:采用top-k算法。如果要找最小的K个数,我们才用一个含有K个值的大顶堆;如果要找最大的K个数,我们采用小顶堆。该算法的时间复杂度为O(nlogK),是一种比较好的算法,启发于堆排序。...
分类:
其他好文 时间:
2014-08-06 23:04:12
阅读次数:
333