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

【力扣】191.位 1 的个数、485.最大连续 1 的个数

191.位 1 的个数

题目描述

编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中 设置位 的个数(也被称为汉明重量)。

示例 1:

输入:n = 11
输出:3
解释:输入的二进制串 1011 中,共有 3 个设置位。

示例 2:

输入:n = 128
输出:1
解释:输入的二进制串 10000000 中,共有 1 个设置位。

示例 3:

输入:n = 2147483645
输出:30
解释:输入的二进制串 11111111111111111111111111111101 中,共有 30 个设置位。

提示:

  • 1 <= n <= 231 - 1

进阶:

  • 如果多次调用这个函数,你将如何优化你的算法?

解题方法

  • C 循环检查
int hammingWeight(int n) {int cnt = 0;unsigned int m = 0x1; // 必须定义为“无符号”型for (int i = 0; i < 32; i++) {if (n & (m << i)) {cnt++;}}return cnt;
}

复杂度分析:
时间复杂度为 O(k),其中 k 是 int 型的二进制位数,k = 32。
空间复杂度为 O(1)。


485. 最大连续 1 的个数

题目描述

给定一个二进制数组 nums , 计算其中最大连续 1 的个数。

示例 1:

输入:nums = [1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.

示例 2:

输入:nums = [1,0,1,1,0,1]
输出:2

提示:

  • 1 <= nums.length <= 105
  • nums[i] 不是 0 就是 1.

解题方法

  • C 遍历取最大
// #define MAX(a, b) ((a) > (b) ? (a) : (b)) // 取最大值int my_max(int a, int b) {if (a > b)return a;elsereturn b;
}int findMaxConsecutiveOnes(int* nums, int numsSize) {int max_cnt = 0, cnt = 0; // 定义最大计数变量,计数变量for (int i = 0; i < numsSize; i++) {if (nums[i] == 1) {cnt++; // 对 1 计数} else {max_cnt = my_max(max_cnt, cnt); // 存储最大 1 的个数cnt = 0;                        // 重新计数}}max_cnt = my_max(max_cnt, cnt);return max_cnt;
}

复杂度分析
时间复杂度为 O(n),其中 n 是数组的长度。
空间复杂度为 O(1)。

http://www.lryc.cn/news/328858.html

相关文章:

  • 蓝桥杯 java 承压计算
  • leetcode268-Missing Number
  • 【jenkins+cmake+svn管理c++项目】jenkins回传文件到svn(windows)
  • 数据结构·二叉树(2)
  • MATLAB算法实战应用案例精讲-【毕业季论文专用】人工智能视觉检测技术及其在实际应用中的挑战与前景
  • Linux虚拟机环境搭建spark
  • STL的string容器
  • 半导体工艺技术
  • acwing算法提高之图论--单源最短路的扩展应用
  • SQLServer数据库使用Function实现根据字段内容的拼音首字母进行数据查询
  • Linux——信号概念与信号产生方式
  • 赋值语句还能当判断条件?涨芝士了!
  • 数据结构 - 算法效率|时间复杂度|空间复杂度
  • 接口自动化之 + Jenkins + Allure报告生成 + 企微消息通知推送
  • 『Apisix安全篇』探索Apache APISIX身份认证插件:从基础到实战
  • 【01-20】计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了
  • 『大模型笔记』常见的分布式并行策略(分布式训练)
  • java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ 可定制化
  • 3D数据格式导出工具HOOPS Publish如何生成高质量3D PDF?
  • 【springboot】闲话 springboot 的几种异步机制 及 长轮询的概念和简单实现
  • Mysql---安全值守常用语句
  • containerd快速安装指南
  • Javascript - 正则表达式相关的一些基础的范例
  • JUC:线程活跃性(死锁、活锁、饥饿)
  • RGB到灰度图像的转换原理及例程
  • PCA+DBO+DBSCN聚类,蜣螂优化算法DBO优化DBSCN聚类,适合学习,也适合发paper!
  • 创建数据库与表单以及管理表单和数据
  • Milvus+ATTU环境搭建
  • Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之八 简单水彩画效果
  • Chrome浏览器 安装Vue插件vue-devtools