摘要: 第六章、亲和数问题--求解500万以内的亲和数作者:上善若水、July、yansha。出处:http://blog.csdn.net/v_JULY_v。前奏 本章陆续开始,除了继续保持原有的字符串、数组等面试题之外,会有意识的间断性节选一些有关数字趣味小而巧的面试题目,重在突出思路的“巧”,和“妙”。本章亲和数问题之关键字,“500万”,“线性复杂度”。第一节、亲和数问题题目描述:求500万以内的所有亲和数如果两个数a和b,a的所有真因数之和等于b,b的所有真因数之和等于a,则称a,b是一对亲和数。例如220和284,1184和1210,2620和2924。分析: 首先得明确到底是什么是亲和. 阅读全文
posted @ 2013-04-22 12:36 legendmaner 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 原题是这样的:一个未排序整数数组,有正负数,重新排列使负数排在正数前面,并且要求不改变原来的正负数之间相对顺序。比如: input: 1,7,-5,9,-12,15 ,ans: -5,-12,1,7,9,15 。且要求时间复杂度O(N),空间O(1) 。一道曾经做过n次的题目,当时做时没有“要求不改变原来的正负数之间相对顺序”条件,几天都没有做些虐心的算法题了,被虐贯了%>_<%一看题目先把去掉那个附加条件的经典题目扫一遍。思想简单利用快排的分类:简单到都不愿写code: 1 void func30(int a[], int n) 2 { 3 int i, j, tmp; 4 5 阅读全文
posted @ 2013-04-22 10:39 legendmaner 阅读(1799) 评论(0) 推荐(0) 编辑