2015年8月26日
摘要: 如果n为偶数,则将它除以2,如果n为奇数,则将它加1或者减1。问对于一个给定的n,怎样才能用最少的步骤将它变到1。例如:n=61n--60n/230n/215n++16n/28n/24n/22n/21算法设计:首先想到的是递规算法,不过细想一下我们可以动态规划:设a(i)为整数i用最少步骤变成1的解... 阅读全文
posted @ 2015-08-26 18:34 bendantuohai 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 在由N个正整数的集合S中,找出最大元素M,满足M=A + B,其中A,B都是集合S中元素思路1:首先对集合S排序,时间复杂度nlogn,然后对排序后的集合做hash,空间复杂度n,M从S中的最大值开始遍历,再内层遍历集合中的每个数x,到hash表里检测M-x是否在集合中思路2:先对集合排序,时间复杂... 阅读全文
posted @ 2015-08-26 15:19 bendantuohai 阅读(306) 评论(0) 推荐(0) 编辑