This commit is contained in:
youngyangyang04
2021-07-29 10:31:40 +08:00
parent b8b8865c69
commit 57eba785b0
3 changed files with 7 additions and 10 deletions

View File

@@ -44,7 +44,7 @@ int function1(int x, int n) {
那么就可以写出了如下这样的一个递归的算法,使用递归解决了这个问题。
```
```C++
int function2(int x, int n) {
if (n == 0) {
return 1; // return 1 同样是因为0次方是等于1的
@@ -62,7 +62,7 @@ int function2(int x, int n) {
这个时间复杂度就没有达到面试官的预期。于是又写出了如下的递归算法的代码:
```
```C++
int function3(int x, int n) {
if (n == 0) {
return 1;
@@ -101,7 +101,7 @@ int function3(int x, int n) {
于是又写出如下递归算法的代码:
```
```C++
int function4(int x, int n) {
if (n == 0) {
return 1;
@@ -132,7 +132,7 @@ int function4(int x, int n) {
对于function3 这样的递归实现很容易让人感觉这是O(logn)的时间复杂度其实这是O(n)的算法!
```
```C++
int function3(int x, int n) {
if (n == 0) {
return 1;
@@ -145,14 +145,12 @@ int function3(int x, int n) {
```
可以看出这道题目非常简单,但是又很考究算法的功底,特别是对递归的理解,这也是我面试别人的时候用过的一道题,所以整个情景我才写的如此逼真,哈哈。
大厂面试的时候最喜欢用“简单题”来考察候选人的算法功底,注意这里的“简单题”可并不一定真的简单哦!
大厂面试的时候最喜欢用“简单题”来考察候选人的算法功底,注意这里的“简单题”可并不一定真的简单哦!
如果认真读完本篇,相信大家对递归算法的有一个新的认识的,同一道题目,同样是递归,效率可是不一样的!
-----------------------
* 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw)
* B站视频[代码随想录](https://space.bilibili.com/525438321)