面试题目分析
2013-10-24 20:20
211 查看
1、实现一个函数,对一个正整数n,算得到1需要的最少操作次数。操作规则为:如果n为偶数,将其除以2;如果n为奇数,可以加1或减1;一直处理下去。
例子:
func(7) = 4,可以证明最少需要4次运算
n = 7
n-1 6
n/2 3
n-1 2
n/2 1
要求:实现函数(实现尽可能高效) int func(unsign int n);n为输入,返回最小的运算次数。给出思路(文字描述),完成代码,并分析你算法的时间复杂度。
答案:
例子:
func(7) = 4,可以证明最少需要4次运算
n = 7
n-1 6
n/2 3
n-1 2
n/2 1
要求:实现函数(实现尽可能高效) int func(unsign int n);n为输入,返回最小的运算次数。给出思路(文字描述),完成代码,并分析你算法的时间复杂度。
答案:
//实现一个函数,对一个正整数n,算得到1需要的最少操作次数 //思路 1 举例子 发现规律 递归方式 特点 返回个数 // 2 非递归方式 定义一个全局 记录操作的次数 // 性能分析:o(n) int getOperCountx(unsigned int n) { if(n==1) { return 0; //退出条件 } if(n%2==0) { return 1+getOperCountx(n/2);//一个操作 /2操作 }else if(n+1>n-1) { return 1+getOperCountx(n-1);//一个操作 -1操作 }else { return 1+getOperCountx(n+1);//一个操作 +1操作 } }
相关文章推荐
- 【转】React 常用面试题目与分析
- 手机分配短讯id的面试题目(分析解答篇)
- C语言面试宝典题目分析(一)
- google 面试题目分析
- C语言面试宝典题目分析(二)
- 手机分配短讯id的面试题目(分析解答篇)
- PHP常见面试题目深入解答分析(一)
- PHP常见面试题目深入解答分析(二)
- C语言面试宝典题目分析(三)
- React 常用面试题目与分析
- React 常用面试题目与分析
- 嵌入式面试题目考点重要分析
- 《面试》--数据结构常见题目分析
- C语言面试宝典题目分析(五)
- 10道五百强面试经典题目及正确答案分析
- 互联网公司数据分析/挖掘面试机器学习面到的题目
- 10道五百强面试经典题目及正确答案分析
- 软件相关职位经典面试笔试题目分析
- 10道五百强面试经典题目及正确答案分析
- 一个程序员面试题目的简单分析