DP/四边形不等式 要求将一个可重集S分成M个子集,求子集的极差的平方和最小是多少…… 首先我们先将这N个数排序,容易想到每个自己都对应着这个有序数组中的一段……而不会是互相穿插着= =因为交换一下明显可以减小极差 然后……直接四边形不等式上吧……这应该不用证明了吧? MLE了一次:这次的w...
分类:
其他好文 时间:
2015-03-06 16:18:03
阅读次数:
142
折半枚举降低暴力搜索的复杂度 在有序数组中用二分查找方式统计有多少值为a的元素的写法
分类:
其他好文 时间:
2015-03-04 20:57:36
阅读次数:
154
笔者曾经参加过某浏览器开发,记得当时在做浏览器放大和缩小的时候,产品经理规定滚动鼠标增加时百分之5,10,15,35,45,50,65,75,85,90,95,100,105,125,150,175,200。当时参加开发的同学就将这组数据做成一个表,然后每次滚动放大或者缩小都首先获取当前数值,然后从...
分类:
编程语言 时间:
2015-03-01 17:02:28
阅读次数:
259
整理一下数据结构和算法的基本概念:
有序数组是按关键字升序或降序排列的,可以使用二分法查找
有序数组的查找速度比无序数组快
有序数组在插入操作中由于所有靠后的数据都需要移动以腾开空间,使用速度较慢
有序数组和无序数组的删除操作都很慢,因为数据项必须向前移动来填补已删除的数据项的洞
有序数组使用于查找频繁的数据库,插入和删除较为频繁的时候,无法高效工作
无序数组插入块,查找慢
有序...
分类:
编程语言 时间:
2015-02-26 18:41:41
阅读次数:
205
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.这道题是要将有序数组转为二叉搜索树,所谓二叉搜索树,是一种始终满足左 &num) { ret...
分类:
编程语言 时间:
2015-02-17 15:18:17
阅读次数:
201
有两个有序的数组a,b;长度分别是m,n;请使用时间复杂度为m+n的算法,将此两个数组重新合并构成一个有序数组c. 1 static void Main(string[] args) 2 { 3 int[] a = { 1, 3, 5, 6, 6, 7, 14...
分类:
编程语言 时间:
2015-02-12 12:10:58
阅读次数:
161
package ch01;public class MyOrderArray { private long [] arr; private int elements;//数组真正的个数 public MyOrderArray(){ arr = new long[50];//默认数组的大小是50 .....
分类:
编程语言 时间:
2015-02-06 14:52:39
阅读次数:
184
题目:与33题类似,也是在被翻转的有序数组中查找元素。不同的是数组中可能有重复的元素出现。
分析:数组中的元素可以重复导致的问题就是如果first小于等于mid,那么前半部分也不一定是有序的,例如[1 3 1 1 1 1 1 ]。因此我们把判断条件进一步细分,分为三种情况,大于,小于和等于。等于的时候直接first++就可以了。
代码:class Solution {
public:
...
分类:
其他好文 时间:
2015-02-04 13:08:15
阅读次数:
148
二分查找算法是在有序数组中用到的较为频繁的一种算法,在未接触二分查找算法时,最通用的一种做法是,对数组进行遍历,跟每个元素进行比较,其时间为O(n).但二分查找算法则更优,因为其查找时间为O(lgn),譬如数组{1, 2, 3, 4, 5, 6, 7, 8, 9},查找元素6,用二分查找的算法执行的...
分类:
编程语言 时间:
2015-02-02 07:06:08
阅读次数:
298
一、树的简单介绍树具有两种数据结构的优点,一种是有序数组,另一种是链表。在树中查找就和在有序数组中查找一样,在树中插入数据和删除数据项的速度也和链表的操作一样。题外话,有序数组的查找一般使用二分法比较快。有序数组的缺点是,插入数据项比较慢,删除数据项的时间复杂度也是O(n),查询的时间复杂度为O(l...
分类:
其他好文 时间:
2015-01-29 12:09:11
阅读次数:
155