leetcode397. Integer Replacement
题目要求
Given a positive integer n and you can do operations as follow:If n is even, replace n with n/2.
If n is odd, you can replace n with either n + 1 or n - 1.
What is the minimum number of replacements needed for n to become 1?Example 1:Input:
8Output:
3Explanation:
8 -> 4 -> 2 -> 1
Example 2:Input:
7Output:
4Explanation:
7 -> 8 -> 4 -> 2 -> 1
or
7 -> 6 -> 3 -> 2 -> 1
思路和代码
可以发现除二后所得到的结果一定优于加减1。因此,如果当前奇数除二为偶数,则直接做除法,否则将当前奇数加一再除以二,得到偶数的结果。
public int integerReplacement(int n) {int count = 0;while(n != 1){if((n & 1) == 0){n >>>= 1;}else if(n == 3 || ((n>>>1) & 1) == 0){n--;}else{n++;}count++;}return count;}
想要了解更多开发技术,面试教程以及互联网公司内推,欢迎关注我的微信公众号!将会不定期的发放福利哦~
leetcode397. Integer Replacement相关推荐
- LeetCode Integer Replacement
题意:给出一个正数n,如果n为偶数则n = n /2,如果n为奇数,则n=n + 1或者n=n-1,求其变为1所需要的最少步数. 思路:刚开始用记忆化的dp,当数值比较大时,提示栈溢出.在判断是n=n ...
- leetcode 397. Integer Replacement | 397. 整数替换(动态规划,记忆化搜搜)
题目 https://leetcode.com/problems/integer-replacement/ 题解 一开始写了个 dp,结果因为大数组 OOM 了. dp 数组需要计算每一个值,有的值是 ...
- LeetCode 397. 整数替换(Integer Replacement)
题目描述: 给定一个正整数 n,你可以做如下操作: 1. 如果 n 是偶数,则用 n / 2替换 n. 2. 如果 n 是奇数,则可以用 n + 1或n - 1替换 n. n 变为 1 所需的最小替换 ...
- 继续过中等难度.0309
. 8 String to Integer (atoi) 13.9% Medium . 151 Reverse Words in a String 15.7% Mediu ...
- 探索Julia(part7)--数组与字典函数
学习笔记,仅供参考,有错必纠 参考自:Julia数据科学应用–Zacharias Voulgaris 使用Julia-1.1.1 数组与字典函数 in 语法: in(item, collection) ...
- python算法工程师面试_算法工程师的面试经历及总结
2017年即将过去,今年是忙碌的一年,从2月17还没开学就来学校,到现在12月初,工作的事情终于尘埃落定,现将这一段经历写下来,希望能帮助来年找工作的学弟学妹,同时,对自己来说,也是一年的工作总结,总 ...
- LeetCode All in One 题目讲解汇总(持续更新中...)
原文地址:https://www.cnblogs.com/grandyang/p/4606334.html 终于将LeetCode的大部分题刷完了,真是漫长的第一遍啊,估计很多题都忘的差不多了,这次开 ...
- 机器学习算法工程师面试总结
转自北邮人论坛 2017年即将过去,今年是忙碌的一年,从2月17还没开学就来学校,到现在12月初,工作的事情终于尘埃落定,现将这一段经历写下来,希望能帮助来年找工作的学弟学妹,同时,对自己来说,也是一 ...
- The X protocol C-language Binding (XCB) is a replacement for Xlib
目录 Introduction News Download Development Documentation Miscellaneous Introduction The X protocol C- ...
- B. Partial Replacement
B. Partial Replacement 题面: You are given a number k and a string s of length n, consisting of the ch ...
最新文章
- Android -- 利用Broadcast开启Service
- Android解决NDK not configured问题
- python编程爱心-python画一个玫瑰和一个爱心
- python加法怎么写_51NOD 大数加法以及python写法
- boost::process::env相关的测试程序
- Apache服务器学习笔记
- rasa聊天机器人_Rasa-X是持续改进聊天机器人的独特方法
- document.createDocumentFragment 以及创建节点速度比较
- 从 vue-cli 源码中,我发现了27行读取 json 文件有趣的 npm 包
- YbtOJ#853-平面标记【整体二分,凸壳】
- ASP.NET的学习之asp.net整体运行机制
- Thinkphp5命名规范
- carmaker/matlab联合仿真(一) 新建工程,运行自带example
- USB(UVC协议)摄像头
- java代码对比工具_代码比较工具(Diffuse)
- 计算机操作系统操作系统(第四版)汤小丹版 思维导图(第一章到第七章)
- 算法题:Find the closest common ancestor
- PDF虚拟打印机(pdfFactory) v5.11 官方版
- 一文搞懂基因融合(gene fusion)的定义、产生机制及鉴定方法
- c语言生日快乐音乐程序,89S51演奏生日快乐的歌曲c程序