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

LeetCode 137. 只出现一次的数字 II

LeetCode 137. 只出现一次的数字 II

给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。
你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。
示例 1:
输入:nums = [2,2,3,2]
输出:3
示例 2:
输入:nums = [0,1,0,1,0,1,99]
输出:99
提示:
1 <= nums.length <= 3 * 104
-231 <= nums[i] <= 231 - 1
nums 中,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次

符号位特殊处理解释见这篇文章

class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        res = 0
        for i in range(32):
            total = 0
            for num in nums:
                total += (num >> i) & 1  # (num >> i) % 2
            if total % 3:
                res |= 1 << i
        flag = (res >> 31) & 1
        if flag:
        	res |= (-1 << 32)
        return res

http://www.kler.cn/news/321514.html

相关文章:

  • Linux安装vim超详细教程
  • MySQL重点,面试题
  • 深入Android UI开发:从自定义View到高级布局技巧的全面学习资料
  • RestSharp简介
  • 通信工程学习:什么是SDN软件定义网络
  • 电脑如何设置代理IP:详细步骤指南
  • STM32 入门教程(江科大教材)#笔记4
  • 01.前端面试题之ts:说说如何在Vue项目中应用TypeScript?
  • 趣笔阁爬虫实验
  • Hadoop FileSystem Shell 常用操作命令
  • GO Message Bus
  • 【Python报错已解决】AttributeError: ‘tuple‘ object has no attribute ‘log_softmax‘
  • 华为为什么要做三折叠屏手机?
  • (已解决)torch.load的时候发生错误ModuleNotFoundError: No module named ‘models‘
  • kafka分区和副本的关系?
  • 深度学习:ResNet残差神经网络
  • 【OpenSSL】OpenSSL 教程
  • C++ 数据类型分类
  • Android12的netd分析
  • 解析Vue2源码中的diff算法
  • kafka下载配置
  • 深度学习自编码器 - 得益于深度的指数增益篇
  • 数据集-目标检测系列-口罩检测数据集 mask>> DataBall
  • 自动驾驶综述 | 定位、感知、规划常见算法汇总
  • 网络编程(5)——模拟伪闭包实现连接的安全回收
  • GitLab发送邮件功能详解:如何配置自动化?
  • Bytebase 2.23.0 - 支持 Entra (Azure AD) 用户/组同步
  • 基于Node.js+Express+MySQL+VUE实现的计算机毕业设计共享单车管理网站
  • KVM 安装 Windows11
  • 不同的浏览器、服务器和规范对 URL 长度的限制