二分法+前缀和法律满足子序列长度的条件(0,n)之间,sum[x+i]-sum[i]从i元素开始序列长度x和。前缀和可在O(n)的时间内统计sum[i]的值。再用二分找出满足条件的最小的子序列长度。#include#include#include#include#include#include#in...
分类:
其他好文 时间:
2015-07-18 16:56:42
阅读次数:
116
排序可分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,称为内排序;如果排序过程中需要使用外存,则成为外排序。
内排序有以下几类:
插入类排序:直接插入排序、二分法(折半)插入排序、希尔(缩小增量)排序
选择类排序:简单选择排序、堆排序
交换类排序:冒泡排序、快速排序、三路划分的快速排序
归并类排序:二路归并排序
基数类排序:MSD基数排序、LSD基数排序
各种内部排序算法的比较直接插入...
分类:
编程语言 时间:
2015-07-18 11:09:15
阅读次数:
165
基本思想折半插入排序的基本思想与直接插入排序一样,在插入第i(i≥1)个元素时,前面i-1个元素已经排好序。区别在于寻找插入位置的方法不同,折半插入排序是采用折半查找法来寻找插入位置的。
折半查找法的基本思路是:用待插元素的值与当前查找序列的中间元素的值进行比较,以当前查找序列的中间元素为分界,确定待插元素是在当前查找序列的左边还是右边,如果是在其左边,则以该左边序列为当前查找序列,右边也类似。按...
分类:
编程语言 时间:
2015-07-18 08:24:26
阅读次数:
136
二分法,while二分法,dowhile 二分法,for二分法
分类:
其他好文 时间:
2015-07-17 18:34:16
阅读次数:
94
public class Solution { public double myPow(double x, int n) { //利用二分法,通过递归加速计算 //注意:1.判断n是否为负 // 2.递归结束条件,n==1和n==0 //...
分类:
其他好文 时间:
2015-07-12 15:29:10
阅读次数:
110
标题效果:特定n点。涵盖所有的点与同方三面。斧头要求方垂直边界,最小平方的需求方长值最大值至少。答案是很明显的二分法但验证是一个问题考虑仅仅有三个正方形,故用一个最小矩形覆盖这三个正方形时至少有一个在角上 若有四个正方形该结论不成立于是我们採用DFS的方式 每次用一个最小的矩形覆盖全部的点,枚举矩形...
分类:
其他好文 时间:
2015-07-10 14:48:05
阅读次数:
92
//二分法!
/*
========================================================
题目:用二分法求解方程3x^3-2x^2-16=0的近似解。
=========================================================
*/
#include
#include
double hs...
分类:
编程语言 时间:
2015-07-10 11:18:52
阅读次数:
155
二分法, 最后注意一下输出的时候要和 nums[left]比较一下来决定输出多少class Solution: # @param {integer[]} nums # @param {integer} target # @return {integer} def search...
分类:
其他好文 时间:
2015-07-08 14:25:09
阅读次数:
94
#includeusing namespace std;//选好二分法的策略 ,二分查找找到一个数所在的范围 比如 2,4,8,12,15,20,23,56,79,90 16的范围就是15 20/**找到比key大的第一个数,比key大的最小数**/int findRight(int data[],...
分类:
其他好文 时间:
2015-06-23 21:26:44
阅读次数:
119
二分法(自己写的格外放心)
1.lower_bound
注意要是查找一个数组的话 应该从(-1, n)的范围内查找
r表示出现的最小位置
void solve(int l, int r)///(l,r]{ while(l + 1 r) { int mid = (l + r) >> 1; if(a[mid] >= k) ...
分类:
其他好文 时间:
2015-06-23 13:37:14
阅读次数:
136