竞技世界2021.3 春招笔试题
数的最少步骤转化为1
如果n为偶数,则将它除以2,
如果n为奇数,则将它加1或者减1。
问对于一个给定的n,怎样才能用最少的步骤将它变到1。
分析
考虑动态规划
若n为偶数, f(n)=f(n/2) + 1;
若n为奇数, f(n)= min(f(n-1), f(n+1)) +1 = min(f((n-1)/2), f((n+1)/2)) +2
code
#include <iostream>
#include <vector>
using namespace std;
int m
原创
2021-03-12 20:59:08 ·
475 阅读 ·
0 评论