算法
文章平均质量分 61
我是谁_Gary
这个作者很懒,什么都没留下…
展开
-
笔试面试题
1、A,B两个整数集合,设计一个算法求他们的交集,尽可能的高效。2、字符串前半段与后半段互换。3、有一个数列,前一部分非递减,后一部分非递增,找出巅峰元素。4、在有N个正整数的集合S中:找出最大元素C,满足C=A+B,其中A,B和C都是集合中元素。6、txt文档,存放长度为6的小写字符串。给定一个长度为6的小写字符串,查找是否存在。已知计算机内存原创 2014-12-15 10:52:09 · 664 阅读 · 0 评论 -
单词匹配算法
题目:有一个江洋大盗,他每次写信都是从一张报纸上剪下单词,再把单词贴在信上。假如某张报纸的单词保存在vectorpaper 中,而信的单词保存在vectorletter 中,写一个算法程序判别该报纸可不可以生成该信?对比一些方法: 这里假设paper:(m个单词,每个单词平均d个字母),letter:(n个单词,每个单词平均d个字母)。对于中文词语而言,一般2~4个字左右,对于英文单词,d转载 2015-10-13 15:25:44 · 4045 阅读 · 0 评论 -
连续数打乱,判断出少了哪些数字
1. 问题:100个连续 的数打乱 之后,随机取出1个数 ,问如何最快速 的判断出少了哪一个?分析:对于所有100个连续的数,只要除余100。一定在0~99之间。一般来说,比较常规的做法就是先排序(利用Hash表定位),在循环查找。当然时间复杂度是O(2n)。现在介绍一种很牛的O(n)做法:求二进制异或运算。异或运算: 0^0=1^1=0; 0^1=1^0=1。0~99个数全部异或转载 2015-10-14 14:19:39 · 1403 阅读 · 0 评论 -
最长公共子序列
如果简单递归解决最长公共子序列这一问题,时间复杂度为指数级,因为有大量的重复子问题。经研究发现,最长公共子序列满足动态规划算法的条件,所以我们用动态规划解之。 假设字符序列A=“a0,a1,…,am-1”,B=“b0,b1,…,bn-1”,Z=“z0,z1,…,zk-1”为它们的最长公共子序列。 不难证明有以下性质: (1) 如果am-1=bn-1,则zk-1=am-1=bn-1,且“z0,z原创 2016-07-28 18:07:41 · 664 阅读 · 0 评论 -
删除文件夹及其下的所有文件
public static void rmFilesAndFolders(String path) { File f = new File(path); if (f.exists()) { if (f.isFile()) f.delete(); else { String[] childrens = f.原创 2016-08-05 13:30:27 · 285 阅读 · 0 评论 -
如何判断一个数是否在40亿个整数中
小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT。今天他就去BAT中的一家面试了,简单的自我介绍后,面试官给了小史一个问题!题目:我有40亿个整数,再给一个新的整数,我需要判断新的整数是否在40亿个整数中,你会怎么做? 【请教大神】小史回到学校,把面试的情况和计算机学院的吕老师说了...转载 2018-10-26 12:19:34 · 452 阅读 · 0 评论 -
如何在10亿数中找出前1000大的数
小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司。简单的自我介绍后,面试官给了小史一个问题。 题目:如何在10亿数中找出前1000大的数? 小史:我可以用分治法,这有点类似快排中partition的操作。随机选一个数t,然后对整个数组进行partition,会得到两部分,前一部分的...转载 2018-10-26 12:29:43 · 348 阅读 · 0 评论 -
拜托,面试别再问我基数排序了!!!
排序,面试中考察基本功问的比较多,工作多年以后,对排序的细节记忆不那么清楚的小伙伴,面试时会比较吃亏。 有一种很神奇的排序,基数排序(Radix Sort),时间复杂度为O(n),今天花1分钟,通过几幅图,争取让大家搞懂细节。 画外音:居然还有时间复杂度为O(n)的排序算法?不但有,其实还有很多。 举个栗子:假设待排序的数组arr={72, 11, 82, 32, 44,...转载 2018-10-26 12:46:05 · 817 阅读 · 1 评论