博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python3解leetcode Single Number
阅读量:6966 次
发布时间:2019-06-27

本文共 649 字,大约阅读时间需要 2 分钟。

问题描述:

 

Given a non-empty array of integers, every element appears twice except for one. Find that single one.

 

Note:

 

Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?

 

Example 1:

 

Input: [2,2,1]Output: 1

 

Example 2:

 

Input: [4,1,2,1,2]Output: 4

 

思路:

考虑异或运算, 例如5^6,就是101^110,结果是011.即两个完全相同的数字进行异或运算,得到的结果为0,。

根据以上特性,将所有num中的数字依次进行异或运算,则其中重复的项经过运算为0,最终结果即单个的项

又由于尽量不适用其他内存,因而考虑将每一步异或结果放置于num[0]的位置

代码:

 

class Solution:    def singleNumber(self, nums: List[int]) -> int:        for i in nums[1:]:            nums[0] = i^nums[0]        return nums[0]

 

转载于:https://www.cnblogs.com/xiaohua92/p/11076567.html

你可能感兴趣的文章
C++ 单向链表反转
查看>>
好书记录
查看>>
Flask | 浅读文档,快速出发
查看>>
SaaS客服的难点和坑点全解析
查看>>
Yenista光学发布新型无源器件测试平台CTP10
查看>>
李志飞:想在中国复制 Echo 的成功,肯定都不靠谱
查看>>
浅析Facebook文字理解引擎DeepText
查看>>
从敏捷工程实践中获益的五种途径
查看>>
xml 序列化操作
查看>>
中国国产64核ARM芯片细节公布
查看>>
飞塔安全实验室:2016年物联网将成为新的战场
查看>>
Gitlab 官方对整个数据删除事件的详细说明
查看>>
JQuery设置checkbox的值,取checkbox的值,设置radio的值,取radio的值,设置下拉选select的值,取select的值...
查看>>
接班 RT 系统?Windows 10 云服务版首次亮相
查看>>
DataGridView数据控件演示
查看>>
MySQL 5.6.26 Release Note解读
查看>>
在MAC平台下使用Eclipse出现了中文乱码
查看>>
redis字典结构
查看>>
理解haslayout
查看>>
第一记: JS变量类型判断(VUE源码解读)
查看>>