600. 不含连续1的非负整数

给定一个正整数 n,找出小于或等于 n 的非负整数中,其二进制表示不包含 连续的1 的个数。

示例 1:输入: 5
输出: 5
解释:
下面是带有相应二进制表示的非负整数<= 5:
0 : 0
1 : 1
2 : 10
3 : 11
4 : 100
5 : 101
其中,只有整数3违反规则(有两个连续的1),其他5个满足规则。

解题思路

  1. dp[i]代表当第i位为0时,不含连续1的个数。
  2. 从高位开始遍历n的每个二进制位,当n的第i位为1的时候,那么就会产生两种情况。就是当该位为0和当该位为1的情况,当该位为0,我们可以直接使用dp[i]得出该位为0时,可以产生多少个不含连续1的二进制数。如果该位为1,我们需要检查上一位是否为1,如果上一位为0,说明该位可以取1,继续以同样的方法向下遍历,否则就无法进行向下遍历。

代码

class Solution {public int findIntegers(int n) {int[] dp=new int[31];dp[0]=1;dp[1]=1;for(int i=2;i<31;i++)dp[i]=dp[i-1]+dp[i-2];int pre=0,res=0;for(int i=29;i>=0;i--){int cur=(1<<i);if((n&cur)!=0){res+=dp[i+1];if(pre==1)break;pre=1;}else pre=0;if(i==0)res++;}return res;}
}

600. 不含连续1的非负整数相关推荐

  1. 递归解决不含连续的1的位串个数的问题

    在离散数学的书上看到一个问题.如下. "How many bit strings of length four do not have two consecutive 1s?" 即 ...

  2. android中的照相机机拍照程序(含连续拍照)

    最近用到了android中的照相机功能,android中实现拍照的方式有两种,一种是调用系统自带的照相机进行拍照,此种方法较为简单,因为是android本身就已经实现了的:另一种就是自己来实现一个拍照 ...

  3. C#LeetCode刷题-动态规划

    动态规划篇 # 题名 刷题 通过率 难度 5 最长回文子串 22.4% 中等 10 正则表达式匹配 18.8% 困难 32 最长有效括号 23.3% 困难 44 通配符匹配 17.7% 困难 53 最 ...

  4. LeetCode-数据结构

    文章目录 应做未做 未弄懂 经典题+易错题 一.长见识的方法 二.杂七杂八积累 三.面试常考题目索引 java刷题常用 树 数组 摩尔投票算法 堆 数据流的中位数 排序 四.基础知识总结 4.x 数组 ...

  5. 如何学好C语言--你的学渣朋友告诉你

    光说不练假把式,光练不说傻把式,又练又说真把式. 真实感受,不是我不想学,是我真的不知道我哪里不会啊和得怎么做啊?本文作者当初就是这么废掉的 推荐两个练习的网站 (一)C语言网 https://www ...

  6. leetcode算法练习 JavaScript实现

    leetcode 表格内容由spider.js从leetcode-cn.com爬取. 已做题目答案也从leetcode-cn.com中爬取并生成文件. 解题进度:已解决 140/637 - 简单 94 ...

  7. 365天挑战LeetCode1000题——Day 117 数位DP II

    数位DP模板 # i: 第i位到最后一位的dp状态-- # mask: 可选择的数字-- # isLimit: 是否限制该位大小,如果没有,那么可以选择0-9,否则需要计算上界s[0] - 'i' # ...

  8. LeetCode中的那些题

    目录 1. 两数之和 2. 两数相加 3. 无重复字符的最长子串 *******4.寻找两个有序数组的中位数(官方解答) : 5.最长回文子串(官方解答) 15. 三数之和 16. 最接近的三数之和 ...

  9. leetcode 转载

    转载: https://blog.csdn.net/love905661433/article/details/84980135 LeetCode 1- 100 1. 两数之和 : https://b ...

最新文章

  1. Cocoa pods的安装
  2. 线性筛法 与 线性求欧拉函数 的计算模板
  3. 关于盘符里某些文件夹删除不了的解决方案研究
  4. 挑战程序设计竞赛部分题目选择排序、二分查找找出下标、深度优先算法、求三角形max周长、蚂蚁算法、操作excel
  5. 先装vs还是先装sql_锅炉给水泵的止回阀到底安装在出口阀前还是阀后?
  6. Linux C DNS 查询IP地址
  7. jQuery-事件和应用
  8. 弹性伸缩Auto Scaling产品全面升级,轻松应对业务负载变化,张弛有度,收放自如!...
  9. opencv-api convexHull
  10. Nodejs Web模块( readFile 根据请求跳转到响应html )
  11. VS快速定位文件、代码插件——DPack
  12. android手机鼠标,安卓手机变鼠标以及手机控制电脑图文教程
  13. Ku高通量卫星“星地一体化”应急通信系统解决方案
  14. 企业申请CMMI3-CMMI5必经的六个阶段
  15. java.util.LinkedHashMap cannot be cast to
  16. Unity HDRP卡通角色自然渲染shader
  17. FFmpeg基础:视频流转图片
  18. 用python批量爬qq号_简单教程 8位QQ靓号爬取并过滤 – Python版
  19. azkaban跑项目的时候,一直running,
  20. 基于Azure Percept 避障乐高汽车

热门文章

  1. HDU6428-Calculate-数论函数
  2. leetcode(283)移动零
  3. 【数字逻辑】第四章 组合逻辑电路:端口设计 端口拓展的方法
  4. java接口的定义与实现,学习路线+知识点梳理
  5. web开发课程培训,10大前端常用算法,学习路线+知识点梳理
  6. c 加密 java解密错误_java解密出错
  7. 20101008 搬家
  8. C++STL特殊容器priority_queue
  9. -code vs 1474 十进制转m进制
  10. python会什么比c慢