题意:给出一个正数n,如果n为偶数则n = n /2,如果n为奇数,则n=n + 1或者n=n-1,求其变为1所需要的最少步数。

思路:刚开始用记忆化的dp,当数值比较大时,提示栈溢出。在判断是n=n+1或者n=n-1时总是选择结果位为1最小的操作

代码如下:

public class Solution
{public int integerReplacement(int n){int ans = 0;while (n != 1){if ((n & 1) == 0) n >>>= 1;else{if (n == 3 || Integer.bitCount(n + 1) > Integer.bitCount(n - 1)){--n;}else ++n;}ans++;}return ans;}
}

LeetCode Integer Replacement相关推荐

  1. leetcode 397. Integer Replacement | 397. 整数替换(动态规划,记忆化搜搜)

    题目 https://leetcode.com/problems/integer-replacement/ 题解 一开始写了个 dp,结果因为大数组 OOM 了. dp 数组需要计算每一个值,有的值是 ...

  2. LeetCode 397. 整数替换(Integer Replacement)

    题目描述: 给定一个正整数 n,你可以做如下操作: 1. 如果 n 是偶数,则用 n / 2替换 n. 2. 如果 n 是奇数,则可以用 n + 1或n - 1替换 n. n 变为 1 所需的最小替换 ...

  3. LeetCode Integer to English Words(整数转化为英文字母)

    题意:给出一下正整数,输出英文表示 思路:每三个数一组,因为最多有三组,对应的分别为Billion,Million,Thousand.然后针对每组的数输出 代码如下: public class Sol ...

  4. [LeetCode]Integer to Roman

    题目描述:(链接) Given an integer, convert it to a roman numeral. Input is guaranteed to be within the rang ...

  5. [LeetCode] Integer to English Words

    Convert a non-negative integer to its english words representation. Given input is guaranteed to be ...

  6. LeetCode Integer Break(整数拆分问题)

    题意:给出一个大于等于2的正整数,将其拆分成若干个整数的和,使得其积最大 思路:在大于4的情况下,将其拆分成若干个3的和,这种情况下积是最大的 代码如下: public class Solution ...

  7. LeetCode Integer to Roman(数字转罗马)

    题意:给出一个1到3999之间的数,求其罗马的表示法 思路:罗马数字中I(1), V(5), X(10), L(50), C(100), D(500),M(1000) 记数规则为: (1)相同的数字连 ...

  8. [Leetcode] Integer to Roman

    第三次刷这个题了,这次一次A过!总结起来是利用了小于4000的数字的罗马数字表示上的相对独立性,我们可以只针对正数表示的个位.十位.百位.千位来分别设计计算的策略. 0: return "& ...

  9. LeetCode All in One 题目讲解汇总(持续更新中...)

    原文地址:https://www.cnblogs.com/grandyang/p/4606334.html 终于将LeetCode的大部分题刷完了,真是漫长的第一遍啊,估计很多题都忘的差不多了,这次开 ...

最新文章

  1. 批处理文件中判断是否64位系统
  2. PPM / PGM / PBM 图像文件格式
  3. java radiobutton获取信息_如何获取JRadioButton的文本值
  4. java生产者实现kafka拦截器
  5. AJAX 中Sys.WebForms.PageRequestManager的事件激发顺序
  6. Eclipse右下角一直提示Computing additional info解决办法
  7. Linux内核深入理解中断和异常(5):外部中断
  8. FortiGate设备管理
  9. 紧急!你用的是这20家 VPS 吗?它们疑似马上要携款跑路!
  10. 性能测试——脚本录制1
  11. Go语言:内存存储模型(对于可执行程序)
  12. Imagej分析所有气泡的粒径
  13. Julia:提高性能的N个点
  14. android java语言_android可以用java语言开发吗
  15. C#带命令行参数调用外部程序
  16. 理解AutoResetEvent与ManualResetEvent的区别
  17. 中国被动元件市场规模调研与发展趋势预测报告2022版
  18. 2022李宏毅第14讲---机器终身学习(Life Long Learning)
  19. 郭敏:什么是交通事件?如何做好交通事件管理以降低二次事故发生概率?
  20. SD卡变成RAW格式怎么办?SD卡RAW格式的解决办法

热门文章

  1. TCP服务器:多进程
  2. python3下载安装windows教程-Python3入门笔记(1) —— windows安装与运行
  3. python官网 中文版 新闻-小伙Python爬虫并自制新闻网站,太好玩了
  4. python大量数据折线图-Python数据可视化练习:各种折线图的用法
  5. 苹果电脑安装python-mac电脑安装python
  6. monty python喜剧-Monty Python(蒙提·派森)的成员简介
  7. 用python画皮卡丘代码-利用Python绘制萌萌哒的皮卡丘
  8. python编程入门指南上下百度云-Python编程初学者指南 PDF扫描版[87MB]
  9. python语言入门m-Python语言入门详解!快速学成Python!
  10. python下载安装教程mac-教程|如何在mac上为Python安装XGBoost!