题目地址:POJ 1905题意:一根某种材料做的直杆被夹在两面墙之间,当他受热时长度变长,就会因两面墙的挤压而向上隆起。长度变化函数为 L'=(1+n*C)*L,给定L,C,n,求向上拱起的高度H。思路:手动计算出这两个公式,然后用二分查找h值。#include #include #include ...
分类:
其他好文 时间:
2015-06-07 18:42:47
阅读次数:
104
1. 问题描述 有两个有序的整型数组a和b(没有重复元素),他们的长度分别为lenA和lenB,求出他们的共同元素。
例如:a = 0,1,3,5,7,9,11;b = 2,3,4,7,11;
它们的交集为{3,7,11}。2. 方法思路 求交集的方法有很多种,但数组的长度会影响算法的效率。2.1 长度相当时,可采取的算法2.1.1 二路归并 对于数组a,b分别以i,j从头遍历数组...
分类:
编程语言 时间:
2015-06-06 23:35:21
阅读次数:
151
【二分查找的思路】二分查找只适用与有序数据,它的执行过程不是像顺序查找那样从第0个开始一直往后找,直到最后一个;二分查找首先查找的是中间位置,若中间位置的元素就是要找的元素,则找到;如果中间位置的元素小于要找的元素,那么要找的元素位于后半部分,往后找;如果中间位置的元素大于要找的元素,那么要找的元素位于前半部分,往前找。【代码实现】下面代码包括二分查找的一般实现以及递归实现:#include<ios...
分类:
其他好文 时间:
2015-06-06 16:38:03
阅读次数:
116
#include
using namespace std; //BFS+优先队列(打印路径)
#define N 500005
int c[N];
int dp[N]; //dp[i]保存的是长度为i的最长不降子序列的最小尾元素
int BS(int n,int x) //二分查找下标,当x比所有元素小时下标为1,比所有元素大时下标为n+1.
{
int low,high,mid;
...
分类:
其他好文 时间:
2015-06-06 13:35:52
阅读次数:
150
LeetCode Contains Duplicate III题目思路我的方法是先用一个结构体,存下每个数字的值和其原坐标;
然后根据值大小排序;
接着遍历每一个数字num[i].val;
利用二分查找找到刚好比num[i].val - t - 1大的数字的坐标;
然后根据坐标判断是否存在值即可;
关于二分查找可见:Binary Search代码struct num {
int p...
分类:
其他好文 时间:
2015-06-06 09:09:47
阅读次数:
96
题目:
统计一个数字在排序数组中出现的次数。例如,输入排序数组{1,2,3,3,3,3,4,5}和数字3由于3在这个数组中出现了4次,因此输出4。
题目解法很多,关键是要找到让人满意的方法,直接统计当然可以,可是显然不是我们要的答案。比较好的思路如下:
使用二分查找的拓展,当查找的元素有重复的时,找到元素的第一个和最后一个。这样将可以计算出该元素有多少个重复的了。二分法在数组中查找一个合乎要...
分类:
编程语言 时间:
2015-06-04 22:49:59
阅读次数:
184
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但...
分类:
其他好文 时间:
2015-06-04 13:33:44
阅读次数:
129
$arr = array(4,58,11,34,88,45,32,54,63,78);function binary($arr,$bnum){ if(is_array($arr) && count($arr) > 0) { sort($arr); $start = 0; $end = coun...
分类:
其他好文 时间:
2015-06-04 13:21:10
阅读次数:
91
题目链接:click here~~
【题目大意】:
题意:有一些衣服,每件衣服有一定水量,有一个烘干机,每次可以烘一件衣服,每分钟可以烘掉k单位水。每件衣服没分钟可以自动蒸发掉一单位水,
用烘干机烘衣服时不蒸发。问最少需要多少时间能烘干所有的衣服。
【解题思路】:
题目数据较大,常规方法肯定会TE,首先可以想到二分枚举答案。枚举时间mid值,(一般二分的题目,题目叫你求什么,就二分什么...
分类:
其他好文 时间:
2015-06-04 11:56:01
阅读次数:
113
题目地址:POJ 1905
题意:一根某种材料做的直杆被夹在两面墙之间,当他受热时长度变长,就会因两面墙的挤压而向上隆起。长度变化函数为 L'=(1+n*C)*L,给定L,C,n,求向上拱起的高度H。
思路:
手动计算出这两个公式,然后用二分查找h值。
#include
#include
#include
#include
#include
#include
#includ...
分类:
其他好文 时间:
2015-06-04 09:49:11
阅读次数:
131