当前位置: 首页 > 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;}
}

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

相关文章:

  • wpf工程中加入Hardcodet.NotifyIcon.Wpf生成托盘
  • keil下载及安装(社区版本)
  • python书上的动物是啥
  • 数据库管理-第198期 升级Oracle ACE Pro,新赛季继续努力(20240605)
  • 华为坤灵交换机S300, S500, S210,S220, S200, S310 如何WEB抓包
  • 【亚马逊云科技 CSDN 联合巨献】 「对话AI 构建者:从基础到应用的 LLM 全景培训」 限时免费!
  • 【AI大模型】Function Calling
  • 零钱兑换 - LeetCode 热题 85
  • 基于web的垃圾分类回收系统的设计
  • 优化你的WordPress网站:内链建设与Link Whisper Pro插件的利用
  • spring中那些地方使用了反射
  • 1 机器人软件开发学习所需通用技术栈(一)
  • Java(十二)——Comparable接口与Comparator接口
  • Nvidia Jetson/Orin +FPGA+AI大算力边缘计算盒子:轨道交通监控系统
  • 笔记 | 软件工程01:从程序到软件
  • 废品回收小程序开发,助力商家拓展回收市场
  • JVM类加载机制和双亲委派
  • 【PyCharm】无法创建虚拟环境,提示:has no attribute CPython3macOsBrew
  • 华为OD刷题C卷 - 每日刷题 12(数组连续和,求最多可以派出多少支团队)
  • 2.1 初识Windows程序
  • EDI系统的使用场景
  • 韩国Neowine推出第三代强加密芯片ALPU-CV
  • golang结构与接口方法实现与交互使用示例
  • C# 判断字符串不等于空的示例
  • 直方图中最大的矩形
  • 分布式锁redisson
  • 将小爱音箱接入 ChatGPT 和豆包ai改造成专属语音助手
  • 短网址生成原理及使用
  • C#调用word组件转pdf,遇到视图保护解决方法
  • NAT端口映射,实现外网访问内网服务器