摘要: 来自:http://www.cnblogs.com/hlxs/archive/2011/08/24/2151828.html 1. 数组相关 在排序找出数组中的两个数,他们之和为n 2. 数组中连续的数字之和为n的所有对数 3. 输出所以字符串的排列与组合 4. 序列化分问题1. 数组相关 在排序找出数组中的两个数,他们之和为n,当然如果数组不是有序的,先排序在找时间复杂度O(nlogn + n),更简单的当然还是hash或者如果元素不重复的话位图,bloom filter更好#include <iostream>using namespace std;//在排序找出数组中... 阅读全文
posted @ 2011-08-24 21:20 wtx 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 0 整理自网络1. Java版(转) 要比较的对象必须实现Comparable接口,重写compareTo 方法,Java在红自带有优先级队列的实现PriorityQueueQueue<ToDoItem> q = new PriorityQueue<ToDoItem>();import java.util.Collections;import java.util.PriorityQueue;import java.util.Queue;public class ToDoItem implements Comparable<ToDoItem>{ private 阅读全文
posted @ 2011-08-24 20:06 wtx 阅读(1959) 评论(0) 推荐(0) 编辑
摘要: 属于转贴一、 Bloom-Filter算法简介。 Bloom-Filter,即布隆过滤器,1970年由Bloom中提出。它可以用于检索一个元素是否在一个集合中,其优点是空间效率和查询时间都远远超过其他算法,其不足在于Bloom- Filter存在着误判。二、 Bloom-Filter的基本思想。 Bloom-Filter算法的核心思想就是利用多个不同的Hash函数来解决“冲突”。 计算某元素x是否在一个集合中,首先能想到的方法就是将所有的已知元素保存起来构成一个集合R,然后用元素x跟这些R中的元素一一比较来判断是否存在于集合R中;我们可以采用链表等数据结构来实现。但是,随着集合R中元素的增加, 阅读全文
posted @ 2011-08-24 16:28 wtx 阅读(7559) 评论(1) 推荐(0) 编辑
摘要: 1. 反转字符串。#include <iostream>using namespace std;/** 编写反转字符串的程序,要求优化速度、优化空间。*/void reverse(char *str,int len){ char *p = str; char *q = str + len - 1; len /= 2; while(len > 0) { *p = *p ^ *q; *q = *p ^ *q; *p = *p ^ *q; p ++; q --; len --; }... 阅读全文
posted @ 2011-08-24 15:53 wtx 阅读(388) 评论(0) 推荐(0) 编辑