大致了看上次写的LIS的nlogn写法,基本上吃透了,就是设一个数组d,d[i]表示的上升子序列为i的时候最小的
原序列值,比如序列1 4 3 5 2 3的d[3]就是3,表示上升子序列为3的时候序列最大值的最小值是3。然后对每个
数二分查找。之前我写那道里面写的挺详细的,不再细说了。
代码:
#include
#include
#include
#include
#include
#in...
分类:
其他好文 时间:
2015-08-30 13:01:52
阅读次数:
186
#include#include#include#includeusing namespace std ;#define M 500 + 10int a[M] ;int b[M] ;int c[M] ;int d[M] ;int l ;int n ;int m ;map Map ;void Mar....
分类:
其他好文 时间:
2015-08-30 11:07:48
阅读次数:
140
题目:统计一个数字在排序数组中出现的次数。思路:采用二分查找,找到该数字在数组中第一次出现的位置,然后再找到组后一个出现的位置。两者做减法运算再加1.Java代码://数字K在排序数组中出现的次数//思路:用二分查找,找到第一个k和最后一个Kpublic class NumberCount { .....
分类:
编程语言 时间:
2015-08-29 11:08:17
阅读次数:
133
在一个有序的数组中,查找一个数,可以使用二分查找,但是这个算法也是有很多地方需要注意的。正确的写法如下所示。
//首先要把握下面几个要点:
//high=n-1 => while(low high=middle-1;
//high=n => while(low high=middle;
//middle的计算不能写在while循环外,否则无法得到更新。
i...
分类:
其他好文 时间:
2015-08-28 17:49:34
阅读次数:
163
题目传送门题意:计算从1开始到第n个非完全平方数的开方和分析:设第n个非完全平方数的值为a,x * x #include #include #include #include #include #include #include #include #include #include #include...
分类:
其他好文 时间:
2015-08-28 09:34:05
阅读次数:
149
#include
using namespace std;int find_val(int a[],int n,int val)
{
int low = 0;
int high = n-1;
while(low<=high)
{
//mid=(high+low)/2;//可能溢出。
int mid = low+(h...
分类:
编程语言 时间:
2015-08-28 02:12:30
阅读次数:
818
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1
这个题可以借助二分查找的思想:
二分查找的时间复杂度是:O(logn)
/**
*题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增...
分类:
编程语言 时间:
2015-08-27 15:17:51
阅读次数:
137
1、二分查找法讲解:如果使用二分查找法做操作的话,数组必须为有序的。 所以一开始是无序数组时,要先排序为有序数组。public class Test2{public static void main(String[] args){ //--查找某个数据,所在的位置 int number = 8; ....
分类:
编程语言 时间:
2015-08-27 14:50:20
阅读次数:
153
Jamie's Contact Groups
Time Limit: 7000MS
Memory Limit: 65536K
Total Submissions: 6902
Accepted: 2261
Description
Jamie is a very popular girl and has quite a lot o...
分类:
其他好文 时间:
2015-08-27 11:07:08
阅读次数:
145
#include
using namespace std;
/*
1)先使用快速排序,使得两个数组有序;
2)然后利用二分查找的方法,在数组B中查找;
3)其中,注意在数组B中,使用二分查找的起点,是根据上次查找的结果开确定的;这样可以进一步提高速度;
*/
int Sort(int array[],int low,int high)
{
int temp=array[low];
int po...
分类:
编程语言 时间:
2015-08-26 20:09:01
阅读次数:
721