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

记录算法笔记(2025.5.28)只出现一次的数字

给你一个 非空 整数数组 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
  • 除了某个元素只出现一次以外,其余每个元素均出现两次。

思路:

  1. 初始化

    • 创建一个空的字典dic,用于记录每个数字的出现次数。

    • 初始化一个变量ans,用于存储只出现一次的数字。

  2. 统计数字出现次数

    • 遍历数组nums,对于每个数字:

      • 如果数字已经在字典中,将其对应的值加1。

      • 如果数字不在字典中,将其添加到字典中,并设置值为1。

  3. 查找只出现一次的数字

    • 遍历字典中的每个键值对:

      • 如果某个键的值为1,将该键赋值给ans

  4. 返回结果

    • 返回变量ans,即为只出现一次的数字。

代码:C#

public class Solution {

   

    public int SingleNumber(int[] nums) {

        int m=nums.Length;

        int ans=0;

       Dictionary<int,int> dic=new Dictionary<int,int>();

        for(int i=0;i<m;i++)

        {

            if(dic.ContainsKey(nums[i]))

            {

                dic[nums[i]]++;

            }

            else

            {

             dic[nums[i]]=1;

            }

           

        }

        foreach(var k in dic)

        {

            if(k.Value==1)

            ans=k.Key;

        }

        return ans;

    }

}

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

相关文章:

  • VMware-workstation安装教程--超详细(附带安装包)附带安装CentOS系统教程
  • 2025年- H63-Lc171--33.搜索旋转排序数组(2次二分查找,需二刷)--Java版
  • 3D-激光SLAM笔记
  • Golang 配置国内代理
  • Android bindservice绑定服务,并同步返回service对象的两个方法
  • 5G 核心网 UE 状态深度剖析:机制、迁移与演进
  • HomeKit 基本理解
  • [SC]SystemC在CPU/GPU验证中的应用(三)
  • gunicorn多线程部署django导致的登陆错误
  • (LeetCode 每日一题) 909. 蛇梯棋 (广度优先搜索bfs)
  • PostgreSQL ERROR: out of shared memory处理
  • 生成https 证书步骤
  • 34、请求处理-【源码分析】-Model、Map原理
  • 设计模式——适配器设计模式(结构型)
  • 小黑大语言模型通过设计demo进行应用探索:langchain中chain的简单理解demo
  • 秒杀系统—5.第二版升级优化的技术文档三
  • [SC]SystemC在CPU/GPU验证中的应用(六)
  • 【STM32】HAL库 之 CAN 开发指南
  • WPF的基础设施:XAML基础语法
  • DeepSeek R1-0528 新开源推理模型(免费且快速)
  • Go 语言的 GC 垃圾回收
  • [git每日一句]your branch is behind ‘origin/master‘
  • 【QT】在QT6中读取文件的方法
  • 安全帽目标检测
  • Java工厂方法模式详解
  • 【pytorch学习】土堆pytorch学习笔记2
  • Eclipse 插件开发 5.3 编辑器 监听输入
  • iOS 集成网易云信IM
  • Parasoft C++Test软件单元测试_实例讲解(对多次调用的函数打桩)
  • azure web app创建分步指南系列之二