338. Counting Bits

输入:一个正整数n
输出:一个数组
规则:输出的数组分别表示0<=x<=n0<=x<=n0<=x<=n,范围内x的二进制表示中有多少个1。
示例:输入2,输出[0,1,1]。
分析:这道题目很直观。如果计算数字x,那就每次把x右移一位,看最后一位是不是1。

	public int[] countBits(int num) {int[] answers = new int[num+1];for(int i=0;i<=num;i++){int count = 0;int r = i;for(int j=0;j<32 && r>0;j++){if(j>0){r = r>>1;}if((r & 1) == 1 ){count++;}}answers[i] = count;}return answers;}

分析2:可以考虑是不是在计算4的1个数的时候,能不能使用前面计算过的数值。4的二进制:100,右移一位就是10,我们已经计算出dp[2]=1,dp[4]=dp[2]+0。
再考虑一个奇数,例如5,二级制:101,右移一位就是10,我们已经计算出dp[2]=1,dp[5]=dp[2]+1。也就是说数值1的1的数量与i2\dfrac{i}{2}2i是有关系的。得出动态转移方程:dp[i]=dp[i>2]+(i&1)dp[i] = dp[i>2] + (i\&1)dp[i]=dp[i>2]+(i&1)
时间复杂度降到O(n).

	public int[] countBits(int num) {int[] answers = new int[num+1];for(int i=1;i<=num;i++){answers[i] = answers[i>>1] + (i&1);}return answers;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424415.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring学习(36):注入简单类型

目录结构 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…

【剑指offer】【leetcode精选题集】【Java】剑指offer题解合集 更新中

Leetcode题集 [剑指offer][JAVA]面试题第[03]题[数组中的重复数字][HashSet] [剑指offer][JAVA]面试题第[04]题[二维数中的查找][数组] [剑指offer][JAVA]面试题第[05]题[替换空格][StringBuilder/Buffer] [剑指offer][JAVA]面试题第[06]题[从尾到头打印链表][栈][递归] [剑指…

41. First Missing Positive

输入&#xff1a;一个没有排序的正数数组nums 输出&#xff1a;在 nums数组中未出现的最小的正整数 规则&#xff1a;数组中的元素可能是负数&#xff0c;也可能重复。要求时间复杂度O(n)&#xff0c;空间复杂度O(1)。 分析&#xff1a;题目其实很简单&#xff0c;遍历一次放入…

spring学习(37):注入list类型

目录结构 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…

【小技巧】【牛客网】【JAVA】在线输入输出练习

【总结】 1. 一直输入模板 import java.util.*; public class Main{public static void main(String[] args) {Scanner sc new Scanner(System.in);while (sc.hasNext()) {//操作}} }2. 有组数或者输入个数 import java.util.Scanner; public class Main{public static voi…

你是一直认为count(1)比count(*)效率高么?

MySQL count(1) 真的比 count(*) 快么? 反正同事们都是这么说的&#xff0c;我也姑且觉得对吧&#xff0c;那么没有自己研究一下究竟&#xff1f;如果我告诉你他们一样&#xff0c;你信么&#xff1f; 有 Where 条件的 count&#xff0c;会根据扫码结果count 一下所有的行数&a…

169. Majority Element

输入&#xff1a;一个数组 输出&#xff1a;数组中的众数 规则&#xff1a;众数就是出现次数大于数组长度一半的元素。 分析&#xff1a;暴力&#xff0c;计算每个元素出现次数。 public int majorityElement(int[] nums) {for(int num : nums){int count 0;for(int num2 : nu…

spring学习(38):注入set类型

目录结构 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…

spring学习(39):注入map类型

目录结构 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…

NanUI文档 - 如何实现C#与Javascript的相互通信

NanUI文档目录 NanUI简介开始使用NanUI打包并使用内嵌式的HTML/CSS/JS资源使用网页来设计整个窗口如何实现C#与Javascript的相互通信如何处理NanUI中的下载过程 - DonwloadHandler的使用(待更新。。。)如何处理NanUI中的弹窗过程 - LifeSpanHandler的使用(待更新。。。)如何控制…

23. Merge k Sorted Lists

输入&#xff1a;k个有序链表lists 输出&#xff1a;一个有序链表 规则&#xff1a;将这个k个有序链表合并成一个有序链表 分析&#xff1a;在链表中合并两个有序链表为一个有序链表是基本功。最开始的直觉是我们可以将lists[0]和lists[1]合并得到 result&#xff0c;result再和…

spring学习(40):注入数组类型

目录结构 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…

PS教程:如何拼图调色出高大上的作品

Hello&#xff0c;小伙伴们&#xff0c;是不是每每看到一些创意海报&#xff0c;就苦于自己不会做&#xff0c;其实合成并不难&#xff0c;掌握原理与技法&#xff0c;接下来就是拼图调色啦&#xff01;首先我们先来看下最终的效果图&#xff0c;铛铛铛&#xff01; 下面我们就…

32. Longest Valid Parentheses

输入&#xff1a;一个字符串s&#xff0c;只包含字符(和) 输出&#xff1a;一个整数&#xff0c;表示最长括号匹配子串的长度。 规则&#xff1a;括号匹配的字符是指每有一个‘(’字符就有对应的‘)’。 其他 情况都是无效的。 暴力算法分析&#xff1a;取字符串s的每一个子串&…

spring学习(41):属性注入

目录结构 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…

【JS】实时监控页面,input框数值自动求和

需求&#xff1a; 有一个页面需要将input框填入的各个费用自动相加&#xff0c;添加到“合计费用”里。 解决方案&#xff1a; 使用jquery的blur实践&#xff0c;每个费用的Input框检测到失去焦点时&#xff0c;将所有的input框数值相加求和&#xff0c;然后写入到“合计费用”…

spring学习(30):定义第一个bean

目录结构 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…

通过字符串引入模块下的属性

flask中可以配置一个字符串导入settings下的配置文件 app.config.from_object("settings.ProductionConfig")这里就是来讲解一下这个到底是怎么实现的。 例&#xff1a; 这是just_xxx.py里面的内容 # -*- coding: utf-8 -*- # Time : 2019/6/17 上午 11:50 # Auth…

392. Is Subsequence

写得好的解题思路链接&#xff1a;url1 url2(动态规划写的比较好) 输入&#xff1a;两个字符串s和t&#xff0c;t可能会很长 输出&#xff1a;s是否是t的子序列。 规则&#xff1a;字符串子序列的定义是&#xff1a;通过删除字符串t的部分字符但是不能改变字符相对位置&#x…

spring学习(42):属性注入注入数组和列表的说明

目录结构 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…