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

力扣最热一百题——只出现一次的数字

这个合集已经很久没有更新了,今天来更新更新~~~


目录

力扣题号

题目

题目描述

示例

提示

题解

Java解法一:Map集合

Java解法二:位运算

C++位运算代码


力扣题号

136. 只出现一次的数字 - 力扣(LeetCode)

下述题目描述和示例均来自力扣

题目

题目描述

给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。

示例

示例 1 :

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

示例 2 :

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

示例 3 :

输入:nums = [1]
输出:1

提示

  • 1 <= nums.length <= 3 * 104
  • -3 * 104 <= nums[i] <= 3 * 104
  • 除了某个元素只出现一次以外,其余每个元素均出现两次。

题解

Java解法一:Map集合

使用map集合记录每一个数字出现的次数确实是我一开始的想法,遍历这个数组,记录每次遇到的数字的次数,key 是数字,value是这个数字出现的次数,然后寻找那个value为1的值即可。

class Solution {public int singleNumber(int[] nums) {// 定义出map集合Map<Integer,Integer> map = new HashMap<>();// 将nums 的数据存储到map之中for (int num : nums) {map.put(num, map.getOrDefault(num, 0) + 1);}// 寻找那个为一的元素for (Integer key : map.keySet()) {if (map.get(key) == 1){// 找到了直接返回return key;}}return -1;}
}

那还是挺慢的,只打败了7.72%的人

Java解法二:位运算

这个东西,刚好是两位两位的,一位不一样,直接异或运算,

不理解异或运算可以看看力扣给的,

 

class Solution {public int singleNumber(int[] nums) {int res = 0;for (int num : nums) {res ^= num;}return res;}
}

 


C++位运算代码

class Solution {
public:int singleNumber(vector<int>& nums) {int res = 0;for(auto num : nums){res ^= num;}return res;}
};

我就好奇前80%的人都写出来了啥玩意儿。

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

相关文章:

  • UE5 UE4 修复GPU驱动程序崩溃
  • SpiderFlow爬虫平台 前台RCE漏洞复现(CVE-2024-0195)
  • 帆软report 设置条件属性,值为负数标为红色功能时,不生效
  • QML实现的图片浏览器
  • 【HTML】对字体的所有操作详解(经典)
  • 关于调查项目的讨论
  • Matlab三维绘图
  • 一体式气象站的优点是什么?带大家了解一下
  • 第八讲_css定位
  • 找出字符串中第一个匹配项的下标(Leetcode28)
  • 【分布式微服务专题】从单体到分布式(四、SpringCloud整合Sentinel)
  • RHCE9学习指南 第19章 网络时间服务器
  • 大模型 RAG 问答技术架构及核心模块盘点:从 Embedding、prompt-embedding 到 Reranker
  • 基于Selenium+Python的web自动化测试框架
  • LeetCode刷题--- 地下城游戏
  • 【sklearn练习】鸢尾花
  • STM32的USB设备库
  • 整数对最小和(100%用例)C卷 (JavaPythonC++Node.jsC语言)
  • QT笔记 - 加载带有提升为自定义部件类的“.ui“文件 - 重写QUiLoader::createWidget()函数
  • 开启Android学习之旅-2-架构组件实现数据列表及添加(kotlin)
  • leetcode 动态规划(最后一块石头的重量II、目标和、一和零)
  • JavaWeb-HTTP
  • 算法训练营第四十二天|动态规划:01背包理论基础 416. 分割等和子集
  • 前端 JS篇快问快答
  • vue/vue3/js来动态修改我们的界面浏览器上面的文字和图标
  • MobaXterm SSH 免密登录配置
  • 霍兰德职业兴趣测试:找到与你性格匹配的职业
  • LVGL学习笔记 显示和隐藏 对象的属性标志位 配置
  • cuda上使用remap函数
  • 【JaveWeb教程】(18) MySQL数据库开发之 MySQL数据库设计-DDL 如何查询、创建、使用、删除数据库数据表 详细代码示例讲解