当前位置: 首页 > news >正文

C语言 | Leetcode C语言题解之第397题整数替换

题目:

题解:

//第一种动态规划:超时
// class Solution {
// public:
//     int integerReplacement(int n) {
//         vector<int>dp(n+1,0);
//         dp[1]=0;
//         for(int i=2;i<=n;i++){
//             if(i%2==0){
//                 dp[i]=dp[i/2]+1;
//             }
//             else{
//                 dp[i]=min(dp[i-1],dp[(i+1)/2]+1)+1;
//             }
//         }
//         return dp[n];
//     }
// };
//第二种:递归。这里需要注意一下就是int数据溢出的问题。
class Solution{
public:
    long Solve(long num){
        if(num==1){
            return 0;
        }
        if(num%2==0){
            return Solve(num/2)+1;
        }
        else{
            return (long)min(Solve(num-1),Solve(num+1))+1;
        }
    }
    int integerReplacement(int n){
        long num=n;
        return Solve(num);
    }
};
http://www.dtcms.com/a/12653.html

相关文章:

  • node.js实现阿里云短信发送
  • 【字符串】AC自动机+dp
  • Android 11 FileProvider的使用和限制
  • vue3-print打印eletable某一行的数据
  • 油烟净化器选购指南:高效净化与优质服务并存的选择
  • AI论文精读笔记-Generative Adversarial Nets(GAN)
  • 远程访问电脑共享文件
  • ansible_find模块
  • 使用vscode上传git远程仓库流程(Gitee)
  • Vue3 响应式工具函数isRef()、unref()、isReactive()、isReadonly()、isProxy()
  • Springcould -第一个Eureka应用 --- day02
  • SpringBootAdmin源码修改编译002_踩坑记录一堆坑_记录过程_没有成功---VUE工作笔记0027
  • uniapp+uview-plus实现微信小程序自定义tabbar
  • 待机模式中WKUP上升沿模拟开机与关机
  • css总结(记录一下...)
  • 从底层原理上理解ClickHouse 中的稀疏索引
  • freeRTOS 任务的创建、挂起、恢复
  • Java代码审计篇 | ofcms系统审计思路讲解 - 篇4 | XXE漏洞审计
  • 在 Ubuntu 20.04 上安装 Python 3.12:详细教程
  • C++学习笔记之引用(基础)
  • ardunio超声波测距实验
  • Docker和anaconda的区别?
  • 单向循环链表
  • Spring Cloud集成Gateaway
  • Linux:git
  • Linux——进程状态
  • 基于SpringBoot的扶贫助农管理系统
  • 滑动窗口算法—字符串的排列
  • 路线查询|基于springboot的公交线路查询系统设计与实现(附项目源码+论文+数据库)
  • MATLAB求解微分方程和微分方程组的详细分析