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

【LeetCode: 137. 只出现一次的数字 II | 位运算 | 哈希表】

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,CSDN-Java领域新星创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

在这里插入图片描述

在这里插入图片描述

🍔 目录

    • 🚩 题目链接
    • ⛲ 题目描述
    • 🌟 求解思路&实现代码&运行结果
      • ⚡ 哈希表
        • 🥦 求解思路1
      • ⚡ 位运算
        • 🥦 求解思路2
        • 🥦 实现代码
        • 🥦 运行结果
    • 💬 共勉

🚩 题目链接

  • 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 中,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次

🌟 求解思路&实现代码&运行结果


⚡ 哈希表

🥦 求解思路1
  1. 我们可以直接统计集合中元素的个数,最后遍历判断找到出现一次的元素即可。
  2. 实现也比较简单,大家可以自行实现,此处不做过多的讲解。

⚡ 位运算

🥦 求解思路2
  1. 这道题目让我们求解的是,数组中只出现一次的元素是什么,区别于昨天的题目,今天题目的变化在于,其它元素出现了3次。具体怎么求解呢?
  2. 我们对所有的元素同时判断它每一位二进制中比特位为1的个数,对每一位为1的个数最后%3,如果为0,那么最终的在该位置就是0,否则就是1,对每一个位置再次进行或运算求得最终的结果。
  3. 具体求解的过程步骤请看下面代码。
🥦 实现代码
class Solution {public int singleNumber(int[] nums) {int res = 0;for(int i = 0; i < 32; i++){int cnt = 0;for(int n:nums){cnt += n>>i & 1;}res |= cnt % 3 << i;}return res;}
}
🥦 运行结果

在这里插入图片描述


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

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

相关文章:

  • 「深入探究Web页面生命周期:DOMContentLoaded、load、beforeunload和unload事件」
  • SpringMVC源码分析(一)启动流程分析
  • ARM 10.12
  • vue-rouer 路由
  • 元数据的前世今生
  • Python实现简易过滤删除数字的方法
  • 软件测试定位bug方法+定位案例(详解)
  • 【算法练习Day21】组合剪枝
  • NPM相关命令
  • Kubernetes 集群部署 Prometheus 和 Grafana
  • 【算法-动态规划】零钱兑换 II-力扣 518
  • Hadoop3教程(六):HDFS中的DataNode
  • Macos音乐制作:Ableton Live 11 Suite for Mac中文版
  • ThinkPHP5小语种学习平台
  • 升级包版本之后Reflections反射包在springboot jar环境下扫描不到class排查过程记录
  • Excel 函数大全应用,包含各类常用函数
  • 深入浅出的介绍一下虚拟机VMware Workstation——part3(VMware快照)
  • 《Python基础教程》专栏总结篇
  • JavaScript 事件
  • 轻松学会这招,给大量视频批量添加滚动字幕不求人
  • 哪个文字转语音配音软件最好用?
  • 多关键词高亮显示
  • 浅谈 33 台 iPad 发展史;OpenAI“悄悄”修改了企业核心价值观丨 RTE 开发者日报 Vol.67
  • Mysql之备份(Mysqldump)
  • 算法leetcode|84. 柱状图中最大的矩形(rust重拳出击)
  • Java中通过List中的stream流去匹配相同的字段去赋值,避免for循环去查询数据库进行赋值操作
  • 开源酒店预订订房小程序源码系统+多元商户 前端+后端完整搭建教程 可二次开发
  • Leetcode 2906. Construct Product Matrix
  • 【Leetcode Sheet】Weekly Practice 11
  • 本地PHP搭建简单Imagewheel私人云图床,在外远程访问