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

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.kler.cn/news/303566.html

相关文章:

  • CSS基本布局理解(测试)——WEB开发系列38
  • 静态和动态类型语言
  • Vue入门学习笔记-表单
  • 文本分类场景下微调BERT
  • 【MySQL】敏感数据加密后如何模糊查询?
  • HarmonyOS】ArkTS学习之基于TextTimer的简易计时器的elapsedTime最小时间单位问题
  • Remix 学习 - 路由模块(Route Module)
  • 利用LM-Gaussian增强稀疏视图3D重建:利用大型模型先验实现高质量场景合成
  • ZoneTree: 高性能ACID兼容的.NET有序键值数据库
  • 使用vue2+axios+chart.js画折线图 ,出现 RangeError: Maximum call stack size exceeded 错误
  • 算法提高模板LCA
  • Unity Behavior Designe 可视化有限状态机(Composites篇)
  • Docker和Docker-compose
  • LSS如何创建视锥
  • HAL库学习梳理——UART
  • HarmonyOS NEXT应用开发性能实践总结
  • 太牛了!顺丰丰语大语言模型:已应用于20余个场景
  • 数据结构实验1
  • 电力系统调度控制台的功能有哪些
  • 【devops】devops-git之介绍以及日常使用
  • Winform中引入WPF控件后键盘输入无响应
  • Vue.js 中的 DOM 更新之后执行某些操作
  • uniapp与webview直接进行传值
  • vscode ssh离线远程连接ubuntu调试
  • python学习第九节:爬虫实战-抓取地址库
  • C语言 12 函数
  • Java二级信息收集
  • yarn webpack脚手架 react+ts搭建项目
  • ELK 架构中 ES 性能优化
  • 简单聊聊bait文件