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

[leetcode hot 150]第一百三十七题,只出现一次的数字Ⅱ

题目:

给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。

你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。

 

由于需要常数级空间和线性时间复杂度,常规的哈希表或者排序方法不适用。可以利用位运算来解决这个问题。具体思路如下:

  1. 位运算

    • 可以利用每个数字的二进制表示。

    • 对于每一位(bit),统计所有数字中该位上1的个数。

    • 如果某一位上的1的个数是3的倍数,那么该位在只出现一次的那个数字中是0,否则是1。

public class no_137 {public static void main(String[] args) {int[] nums = {0, 1, 0, 1, 0, 1, 99};System.out.println(singleNumber(nums));}public static int singleNumber(int[] nums) {int ones = 0, twos = 0;for (int num : nums) {//  更新ones和twosones = (ones ^ num) & ~twos;twos = (twos ^ num) & ~ones;}return ones;}
}

相关文章:

  • 天润融通助力浪鲸卫浴,智能化革新引领客户服务新高度
  • 【区块链】truffle测试
  • vue3+three.js给glb模型设置视频贴图
  • Apple开发者Profiles创建完整步骤
  • git clone 文件名中文、有冒号等问题 fatal: repository ‘***/r/鏍″洯鏅烘収椋熷爞/.git/‘ not found
  • 配置 HTTP 代理 (HTTP proxy)
  • 每日5题Day17 - LeetCode 81 - 85
  • 赶紧收藏!2024 年最常见 20道 Kafka面试题(十)
  • 前端树形结构组件的设计与实现:以企查查、天眼查股权结构为例
  • 翘首以盼的抗锯齿
  • 【java 如何将字符串反转?】
  • C++访问越界
  • python 批量ts合并成一个mp4
  • Unity3D 基于YooAssets的资源管理详解
  • Web安全渗透攻防技术
  • [Vue CLI 3] 配置解析之 css.extract
  • Apache的80端口被占用以及访问时报错403
  • eclipse(luna)创建web工程
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • js
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • mysql 5.6 原生Online DDL解析
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • Objective-C 中关联引用的概念
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 复习Javascript专题(四):js中的深浅拷贝
  • 基于游标的分页接口实现
  • 聊聊flink的BlobWriter
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 如何设计一个比特币钱包服务
  • 深度学习在携程攻略社区的应用
  • 小程序开发之路(一)
  • puppet连载22:define用法
  • scrapy中间件源码分析及常用中间件大全
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​马来语翻译中文去哪比较好?
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (day6) 319. 灯泡开关
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (转)德国人的记事本
  • (转)为C# Windows服务添加安装程序
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .NET 常见的偏门问题
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • @property python知乎_Python3基础之:property
  • @SpringBootApplication 包含的三个注解及其含义
  • [20171113]修改表结构删除列相关问题4.txt
  • [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [Android 13]Input系列--获取触摸窗口
  • [Assignment] C++1