LeetCode算法题-Single Number(Java实现)

【Java完整版 面试必备】Leetcode Top100题目和答案-动态规划篇 【Java完整版 面试必备】Leetcode Top100题目和答案-动态规划篇:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你不触动警报装置的情况下,一夜之内能够偷窃到的最高金额。 阅读详情

这是悦乐书的第175次更新,第177篇原创

01 看题和准备

今天介绍的是LeetCode算法题中Easy级别的第34题(顺位题号是136)。给定一个非空的整数数组,除了一个元素外,每个元素都会出现两次。 找到那个只出现了一次的元素。例如:

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

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

本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试。

02 第一种解法

因为已经限定传入的数组不为空,所以此题不需要考虑特殊情况。

在解这道题之前,我们先来了解下Java中的异或(^)运算,它的计算规则是转换为二进制数后,两边的对应位不同时,取1,否则取0。如果遇到负数,需要用负数的补码进行计算。

当两个相同的数做异或运算时,他们运算后的结果是0。

当0和一个非零的数进行异或运算时,运算结果是那个非零的数。

此题中,重复的元素都是出现两次,只会有一个元素只出现一次,那么对所有的元素进行异或运算,最后得到的结果就是那个只出现了一次的元素。

public int singleNumber(int[] nums) {
    int result = 0;
    for(int n : nums){
        result ^= n;
    }
    return result;
}

此解法的时间复杂度是O(n),看见复杂度是O(1)。

03 第二种解法

我们可以先对数组进行升序排序,排序后出现两次的元素肯定是相邻的元素,对此可以使用count记数和相邻元素比较的方法,来找出只出现了一次的元素。

第一次循环,count为1,此时需要判断i+1是否等于数组长度或者当前元素不等于后一元素,如果满足,那么再判断此时的count是否等于1,如果等于1,那么当前元素就是那个只出现了一次的元素,否则count重置为0,然后继续循环。

public int singleNumber2(int[] nums) {
    Arrays.sort(nums);
    int count = 0;
    for (int i = 0; i < nums.length; i++) {
        count++;
        if (i + 1 == nums.length || nums[i] != nums[i + 1]) {
            if (count == 1) {
                return nums[i];
            }
            count = 0;
        }
    }
    return -1;
}

04 小结

以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!

算法刷题LeetCode 算法刷题LeetCode 算法刷题LeetCode 算法刷题LeetCode 立即下载

相关推荐

jmeter问题系列:Begin size 0 is not equal to fixed size 5

Begin size 0 is not equal to fixed size 5 ,问题的解决

雨水的早晨的博客 2415

[leetcode]Single Number的来来往往

Single Number是一个位操作(Bit Operation)系列的题目,对于像我这种之前对bit Operation接触不是太多的同学,看到很多博客一笔带过的解析可能很懵。下面一起先易后难,从Single Number到Single Number II,逐步拨云见日。 文章目录1.Single Number2.single Number II2.1 思路分析2.2 解法一2.3 解法二2....

loongkingwhat的博客 1809

开源滑翔伞升降速度表:基于STM32与传感器融合的DIY飞行仪表

传感器融合是现代嵌入式系统与物联网设备中的核心技术,它通过整合多个传感器的数据,利用滤波与估计算法,获得比单一传感器更精确、更可靠的环境感知能力。其技术价值在于提升系统的鲁棒性、精度和上下文理解能力,广泛应用于无人机导航、可穿戴设备、工业监测及智能驾驶等领域。本文聚焦于一个具体的工程实践案例——开源多功能滑翔伞升降速度表(Open-Vario),该项目巧妙地运用了**卡尔曼滤波器**进行气压与GNSS数据的融合,以精确计算升降率,并基于**FreeRTOS**实时操作系统构建了一个稳定、可扩展的嵌入式平台,

weixin_33657398的博客 178

LeetCode----------Single Number

最近开始了在LeetCode上的刷题,现记录其中比较重要的算法知识点。 题目描述: Given an array of integers, every element appears twice except for one. Find that single one. Note: Your algorithm should have a linear runtime

zys_1997的博客 394

全志T113s3主线linux开发(0)--基础准备

嵌入式Linux设备的启动大概是三步:1)启动芯片+内存:常见的是Uboot,不过全志的Uboot主线对SPI NAND 不太友好,用TF卡就方便。对于T113S芯片,推荐使用Awboot,简陋但快速。开发阶段用这个就方便好多,对SPINAND支持也方便。2)启动linux内核:主线内核以下通篇都用6.13以上的内核。对比tina5.0还在用5.4 ,主要是性能、安全上有变化。6.0以上内核在devicetree的编写具体格式上有了变化,网上大量tina5.0和5.4内核的编写方式不适用。

2301_79234138的博客 2249

一文搞懂STM32定时器翻转模式(产生多路频率、占空比的PWM)

(产生多路频率、占空比的PWM)

weixin_56688599的博客 7936

java singleresult方法_Java UserOperationLogQuery.singleResult方法代碼示例

本文整理匯總了Java中org.camunda.bpm.engine.history.UserOperationLogQuery.singleResult方法的典型用法代碼示例。如果您正苦於以下問題:Java UserOperationLogQuery.singleResult方法的具體用法?Java UserOperationLogQuery.singleResult怎麽用?Java UserO...

weixin_32126033的博客 407

别再迷信Intel网卡了!用普通笔记本+TWINCAT3搭建EtherCAT主站的完整避坑实录

本文详细介绍了如何用普通笔记本和TWINCAT3搭建EtherCAT主站的完整避坑指南。通过破除必须使用Intel网卡的迷思,提供软件环境搭建、关键配置步骤、Wireshark抓包技巧及性能优化建议,帮助开发者低成本实现EtherCAT主站功能。

weixin_29305337的博客 707

LeetCode算法:0~99道

冒泡排序 定义一个布尔变量 hasChange,用来标记每轮是否进行了交换。在每轮遍历开始时,将 hasChange 设置为 false。 若当轮没有发生交换,说明此时数组已经按照升序排列,hashChange 依然是为 false。此时外层循环直接退出,排序结束。 代码示例 Java import java.util.Arrays; public class BubbleSort { private static void bubbleSort(int[] nums) { b

qq_43265673的博客 657

Android11,无障碍服务模拟多手势使用dispatchGesture时总是onCancelled

AccessibilityService的dispatchGesture去模拟多手势,总是onCancelled的一种解决办法

m0_49953943的博客 2105

从零开始学习PX4源码9(部署px4源码到gitee)

由于PX4-Autopilot托管在github,在没有翻墙的情况下,下载固件无法下载。为了提高下载速度,这里将PX4在github上的仓库以及其子仓库(依赖仓库)都搬移到gitee上了。本教程讲解如何快速部署px4固件到gitee上,实现不需要翻墙快速本地就可以下载PX4固件。暂时没有找到如何批量直接通过修改.gitmodules后,使用什么命令可以直接把所有的一级二级子模块的指向直接正常映射。!!

陌城烟雨 813

single number java_LeetCode算法题-Single Number(Java实现)

这是悦乐书的第175次更新,第177篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第34题(顺位题号是136)。给定一个非空的整数数组,除了一个元素外,每个元素都会出现两次。 找到那个只出现了一次的元素。例如:输入:[2,2,1]输出:1输入:[4,1,2,1,2]输出:4本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用J...

weixin_34374031的博客 149

诊断CAPL自动化(3)——封装了接收诊断数据的通用CAPL脚本函数库

DiagGetRespPrimitiveSize (获取诊断响应的单个数据) diagGetPrimitiveData (获取诊断返回的所有数据) DiagGetRespParameter(数值类型) DiagGetRespParameter(字符串类型) DiagGetRespParameter(byte数组)

蚂蚁小兵 6222

single java_LeetCode算法题-Single Number(Java实现)

这是悦乐书的第175次更新,第177篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第34题(顺位题号是136)。给定一个非空的整数数组,除了一个元素外,每个元素都会出现两次。 找到那个只出现了一次的元素。例如:输入:[2,2,1]输出:1输入:[4,1,2,1,2]输出:4本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用J...

weixin_39530960的博客 149

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

[leetcode]Single Number

刷微博时看见的一道网易面试题,竟然一点印象都没有,后来才知道是leetcode上面的原题,而且是一个系列的都是关于位运算的。136. Single Number Given an array of integers, every element appears twice except for one. Find that single one. Note: Your algorit

paine1690的博客 522

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

LeetCode_Single_Number_II

问题描述 给定一个整数数组,每个元素出现k (k > 1)次,只有一个元素出现p次(p >= 1, p % k != 0)。找到那个元素。 数组元素只有1位的特殊情况 正如其他人指出的,为了应用位操作,我们回顾一下整数在计算机中是如何表示的——按二进制位表示。首先,我们先来考虑只有1位的情况。假设我们有一个整数数组,它的元素只有1位二进制(0或者1),我们需要统计数组中1的数量,当1...

wlwh90的专栏 5867

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

LeetCode-136. Single Number [C++][Java]

Given anon-emptyarray of integersnums, every element appearstwiceexcept for one. Find that single one. You mustimplement a solution with a linear runtime complexity and useonly constantextra space.

贫道绝缘子的博客 849

leetcode 260.Single Number III

在leetcode的第260题 Single Number III 中有位大神的解题方法。

程序猿成长日志 412

leetcode 137. Single Number II

https://leetcode.com/problems/single-number-ii/ 给定一个数组,该数组有一个元素只出现一次,其他元素均出现三次,找到这个只出现一次的元素,时间O(n),空间O(1) 一、问题分析 测试用例: Example: Input: [1,2,1,3,2,5] Output: [3,5] 设其他元素有k个,则所有元素每个位上0的数量=3*m...

小景的博客 272

leetcode (Single Number)

Title:Single Number   136 Difficulty:Easy 原题leetcode地址:  https://leetcode.com/problems/single-number/   1.  见代码注释 时间复杂度:O(n),两次一层for循环,最长遍历为数组nums的长度。 空间复杂度:O(n),申请一个Map。 /** * 采用Hash...

hsx1612727380的专栏 179

LeetCode-260. Single Number III [C++][Java]

Given an integer arraynums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once. You can return the answer inany order.

贫道绝缘子的博客 1832

LeetCode--136. Single Number & 137. Single Number II & 260. Single Number III

题目链接:https://leetcode.com/problems/single-number/、https://leetcode.com/problems/single-number-ii/、https://leetcode.com/problems/single-number-iii/ 思路一:最朴素的思路就是使用哈希算法来做这三条题目,代码都差不多 Single Number 代码: ...

To_be_thinking的博客 170

LeetCode刷题:137. Single Number II

LeetCode刷题:137. Single Number II 原题链接:https://leetcode.com/problems/single-number-ii/ Given a non-empty array of integers, every element appears three times except for one, which appears exactly onc...

梅森上校的博客 业精于勤荒于嬉,形成于思毁于随。 228

leetcode【260】Single Number III

写在最前面: 当然可以通过遍历查找,但是时间复杂度太高,leetcode肯定通不过。 然后我们要研究异或。   leetcode【260】Single Number III Given an array of numbers nums, in which exactly two elements appear only once and all the other elements a...

ssjdoudou的博客 2万+

异或巧用:Single Number

异或巧用:Single Number 今天刷leetcode,碰到了到题Single Number,觉得解答很巧妙,故记之。。。 题目: Given an array of integers, every element appears twice except for one. Find that single one. Note: Your algorithm should have

yangyao_iphone的专栏 938
上一篇: LeetCode算法题-Valid Palindrome(Java实现)
下一篇: LeetCode算法题-Linked List Cycle(Java实现)
程序员小川
博客等级 码龄10年 47粉丝 305原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值