- 博客(22)
- 资源 (3)
- 收藏
- 关注
转载 java hash_map
HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但它们底层的 Hash 存储机制完全一样,甚至 HashSet 本身就采用 HashMap 来实现的。 通过 HashMap
2014-06-21 19:52:29 940
转载 给字符串s1、s2,在s1中找包含s2里所有字符的最小子串
/** * 采用hashMap进行比较,达到O(n) java实现如下: */import java.util.HashMap;public class SubString { private String[] src_string = null; private String[] sub_stri
2014-06-21 18:28:15 1231
转载 排序稳定性问题
这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定的人准备的。 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相
2014-06-14 23:19:00 356
转载 笔试面试最常涉及到的12种排序算法 总结
作者:寒小阳时间:2013年9月。声明:版权所有,转载请注明出处,谢谢。0、前言 从这一部分开始直接切入我们计算机互联网笔试面试中的重头戏算法了,初始的想法是找一条主线,比如数据结构或者解题思路方法,将博主见过做过整理过的算法题逐个分析一遍(博主当年自己学算法就是用这种比较笨的刷题学的,囧),不过又想了想,算法这东西,博主自己学的过程中一直深
2014-06-14 23:16:09 676
转载 bit_map
BitMap的定义:所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。 使用bitmap实现8位电话号码的存储,能够实现电话号码的插入、删除、查找。使用bitmap算法。8位电话号码总共有0-99999999个号码,每位代表一个电话号码,需要12500000
2014-06-14 23:06:24 417
转载 从算法的角度去考虑处理海量数据。
1. Bloom Filter【Bloom Filter】Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素是否存在集合的快速的概率算法。Bloom Filter有可能会出现错误判断,但不会漏掉判断。也就是Bloom Filter判断元素不再集合,那肯定不在。如果判断元素存在集合
2014-06-14 23:04:58 1012
转载 给定一个十进制正整数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有“1”的个数
问题:给定一个十进制正整数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有“1”的个数。例如:N= 2,写下1,2。这样只出现了1个“1”。N= 12,我们会写下1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12。这样,1的个数是5。问题一:写一个函数f(N),返回1到N之间出现1的个数,比如f(12)= 5。解法一
2014-06-14 16:54:49 15293 2
转载 最快速的方法计算出下面这个圆形是否和正方形相交
题目重述(来自面试题):(初稿,未改错别字。)用最简单, 最快速的方法计算出下面这个圆形是否和正方形相交。3D坐标系 原点(0.0,0.0,0.0)圆形:半径r = 3.0圆心o = (*.*, 0.0, *.*)正方形:4个角坐标1:(*.*, 0.0, *.*)2:(*.*, 0.0, *.*)3:(*.*, 0.0, *.*)4:(*.*,
2014-06-14 12:57:19 1036
转载 快速幂
快速求正整数次幂2007-05-05 12:21快速求正整数次幂,当然不能直接死乘。举个例子:3 ^ 999 = 3 * 3 * 3 * … * 3直接乘要做998次乘法。但事实上可以这样做,先求出2^k次幂:3 ^ 2 = 3 * 33 ^ 4 = (3 ^ 2) * (3 ^ 2)3 ^ 8 = (3 ^ 4) * (3 ^ 4)3 ^
2014-06-13 17:08:37 337
转载 Fibonacci数列
题目:定义Fibonacci数列如下: / 0 n=0f(n)= 1 n=1 \ f(n-1)+f(n-2) n=2输入n,用最快的方法求该数列的第n项。分析:在很多C语言教科书中讲到递归函数的时候,都会用Fibonacci
2014-06-13 16:25:30 502
转载 kmp next 求法
模式串abaabcac next值01122312 nextval值 next数组的求解方法是:第一位的next值为0,第二位的next值为1,后面求解每一位的next值时,根据前一位进行比较。首先将前一位与其next值对应的内容进行比较,如果相等,则该位的next值就是前一位的next值加上1;如果不等,向前继续寻找next值对应的内容来与前一位进行比较,直到找到某个
2014-06-11 22:14:13 401
转载 三种方式实现--从尾到头输出链表
三种方式实现--从尾到头输出链表 方法一:借用栈倒序输出链表 方法二:先翻转链表,再顺序输出 方法三:递归实现,一个妙,两个字妙啊 方法一:借用栈倒序输出链表 因为栈是先进后出,把链表中的元素存进栈中,链表前面的元素在栈底,后面的元素在栈顶,链表后面的元素先出栈 方法二:先翻转链表,再按顺序打印(主要是想自己实现单链表的翻转,
2014-06-11 14:54:31 504
转载 微软面试题--找数组中唯一出现两次的数
微软面试题--找数组中唯一出现两次的数 2012-09-03 10:44:43| 分类: 算法、数据结构 | 标签:算法数据结构 面试 |举报|字号 订阅题:假设你有一个用1001个整数组成的数组,这些整数是任意排列的,但是你知道所有的整数都在1到1000(包括1000)之间。此外,除一个数字出现两次外,其他所有数字只出现一次。假设你只能对这个数组做一次处理,用一种算法
2014-06-10 17:12:00 1030
转载 interview
根据上排给出的十个数,在其下排填出对应的十个数(腾讯面试题)题目:腾讯面试题:给你10 分钟时间,根据上排给出十个数,在其下排填出对应的十个数要求下排每个数都是先前上排那十个数在下排出现的次数。上排的十个数如下:【0,1,2,3,4,5,6,7,8,9】举一个例子,数值: 0,1,2,3,4,5,6,7,8,9
2014-06-09 23:26:56 368
转载 dfs bfs
DFS:/*该DFS框架以2D坐标范围为例,来体现DFS算法的实现思想。*/#include#include#includeusing namespace std;const int maxn=100;bool vst[maxn][maxn]; // 访问标记int map[maxn][maxn]; // 坐标范
2014-06-09 16:20:50 444
转载 经典迷宫问题
给定一个迷宫,入口为左上角,出口为右下角,问是否有路径从入口到出口,若有则输出一条这样的路径。注意移动可以从上、下、左、右、上左、上右、下左、下右八个方向进行。迷宫输入0表示可走,输入1表示墙。易得可以用1将迷宫围起来避免边界问题。本题采用DFS算法给出解。[cpp] view plaincopy/* 迷宫问题(八方向) in
2014-06-08 10:01:42 1101
转载 整数划分
整数划分问题是算法中的一个经典命题之一,有关这个问题的讲述在讲解到递归时基本都涉及到。 所谓整数划分,是指把一个正整数n写成如下形式: n=m1+m2+m3+....+mi;(其中mi为正整数,并且1}为n的一个划分。 如果{m1,m2,m3,....,mi}中的最大值不超过m,即max{m1,m2,m3,....,mi} 例如当n=4
2014-06-06 17:36:45 528
转载 背包
01背包问题:1.递归思想0- 1 背包问题如果采用递归算法来描述则非常清楚明白, 它的算法根本思想是假设用布尔函数knap( s, n) 表示n 件物品放入可容质量为s 的背包中是否有解( 当knap 函数的值为真时说明问题有解,其值为假时无解) . 我们可以通过输入s 和n 的值, 根据它们的值可分为以下几种情况讨论:( 1) 当s=
2014-06-06 13:15:50 559
转载 排序比较
1.稳定性比较插入排序、冒泡排序、二叉树排序、二路归并排序及其他线形排序是稳定的选择排序、希尔排序、快速排序、堆排序是不稳定的2.时间复杂性比较 平均情况 最好情况最坏情况归并排序O(nlogn) O(nlogn)O(nlogn)基数排序O(n)O(n)O(n)快
2014-06-05 22:25:37 330
转载 hanoi
假设要解决的汉诺塔共有N个圆盘,对A塔上的全部N个圆盘从小到大顺序编号,最小的圆盘为1号,次之为2号,依次类推,则最下面的圆盘的编号为N。 第一步:若A塔上只有一个圆盘,即汉诺塔只有一层,则只需将这个盘从A塔上移到B塔上即可; 第二步:对于一个有N(N>1)个圆盘的汉诺塔,将N个圆盘分成两部分:上面的N-1个圆盘和最下面的N号圆盘。解决N个圆盘的汉诺塔,
2014-06-05 21:56:39 359
转载 字典序法生成全排列算法的证明
引言对一个给定数据进行全排列,在各种场合经常会用到。组合数学中,生成全排列的方法有很多,卢开澄老师的《组合数学》中就介绍了三种:序数法,字典序法,临位互换法等。其中以字典序法由于算法简单,并且使用的时候可以依照当前状态获取下一个状态,直到所有排列全部完成,方便在程序中随要随用,应用比较广泛,STL中的Next_permutation也是使用此法。算法定义首先看什么叫字典序
2014-06-05 20:12:17 716
转载 全排列递归算法
从第m个元素到第n个元素的全排列的算法: void Permutation(int A[], int m, int n) { if(m = = n) { Print(A); //直接输出,因为前n-1个数已经确定,递归到只有1个数。 return; } else { for(i=m;iswap(a[m],a[i]); //交换,对应第二步 Permutation(A
2014-06-05 16:59:57 422
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人