摘要:
组合问题 以下两个题目是等价的: 题目1:输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有空、a、b、c、ab、ac、bc、abc。 题目2:打印一个集合所有的子集和,比如{a,b,c}的子集和有{a},{b},{c},{a,b},{a,c},{b,c},{a,b, 阅读全文
摘要:
一、简介 两个整数的最大公约数是能够同时整除它们的最大的正整数。辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的相除余数的最大公约数。例如,252和105的最大公约数是21(252 = 21 × 12;105 = 21 × 5),因为252 ÷105 = 2......42,所以 阅读全文
摘要:
第4题,杂技算法只交换一次,貌似比求逆快,但是时间还与cache与内存的块交换有关,因为杂技算计访问的数据不连续,并且每次又只访问一个元素,频繁的换进换出,所以实际时间长。 第6题,给每个名字编码,将编码一样的放在一起,并按字典序顺序排列,查找的时候二分查找就可以了。 第7题,其实就是把列作为标识, 阅读全文
摘要:
尽管排列组合是生活中经常遇到的问题,可在程序设计时,不深入思考或者经验不足都让人无从下手。全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。 所谓全排列,就是打印出字符串中所有字符的所有排列。例如输入字符串abc,则打印出 a、b、c 所 阅读全文
摘要:
变位词(anagrams):指的是组成两个单词的字符相同,但位置不同的单词。比如说,abbcd和abcdb就是一对变位词。在介绍问题c之前,我们先看看如何判断两个字符串是否是变位词。 分析:求解题目C有两种思路: 【思路一】 由于变位词只是字母的顺序改变,字符长度,字符种类没有改变,所以根据此我们只 阅读全文
摘要:
问题B:将一个n元一维向量向左旋转i个位置。例如,当n = 8且i = 3时,向量abcdefgh旋转为defghabc。 方法一、使用一个字节的额外空间开销。 采用每次向左移一位的方法,循环i次。当然也可以使用向右移动的方法,循环length - i次。以向左移动为例,共需要移动i趟,首先把str 阅读全文
摘要:
A题 给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中一32位整数。有三个问题:(1)在文件中至少存在这样一个数?(2)如果有足够的内存,如何处理?(3)如果内存不足,仅可以用文件来进行处理,如何处理? 答案: (1)32位整数,包括-2146473648~~2146473 阅读全文
摘要:
1. 如果不缺内存,如何使用一个具有库的语言来实现一种排序算法以表示和排序集合? 任何排序算法都可以,通常用快速排序。 2. 如何使用位逻辑运算 (如与、或、移位)来实现位向量? 假如需要对N个不重复整数(最大值为N)进行排序,可以定义布尔类型的数组bool a[N]。当然本题目中使用Int[1+n 阅读全文
摘要:
一、利用随机数函数生成随机数 问题1(《编程珠玑》习题12.1后半段): 给定一个rand(),可以产生从0到RAND_MAX的随机数,其中RAND_MAX很大(常见值:16位int能表示的最大整数32767),写出利用rand()生成[a,b]中任意整数的函数,其中a>=0, b<=RAND_MA 阅读全文
摘要:
UCI:加州大学欧文分校开放的经典数据集,被很多数据挖掘实验室采用。 http://archive.ics.uci.edu/ml/datasets.html CEIC:超过128个国家的经济数据,能精确查找GDP、进出口零售,销售等深度数据。 http://www.ceicdata.com/zh-h 阅读全文