[leetcode]数组类题目总结与回顾(287,268,136,1021,1014,905)
时间:2019-04-13
本文章向大家介绍[leetcode]数组类题目总结与回顾(287,268,136,1021,1014,905),主要包括[leetcode]数组类题目总结与回顾(287,268,136,1021,1014,905)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
今天做了数组类的这几道题(287,268,136,1021,1014,905)这几道题中有的是实在想不出来参考了其他人的解法,也有完全自己想出来的,有些虽然是easy的题,但仍想不出好的解决方法,通过这几道题感觉学到了许多,感觉还是需要整理与回顾一下。
首先来看下这两道题,对时间复杂度或是空间复杂度都有严格的要求:
136. Single Number
题目描述:
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
解题思路:
需要在线性时间和不使用额外的的内存完成。也就是说不能申请新的数组或其他数据结构来计数了。这道题主要是采用位运算来完成,异或运算是相同位异或结果位0,而不同位异或结果为1,利用这个特性,我们可以找出数组的Single Number。因为数组中只有一个数是只出现了一次,而其他数都出现了两次。那么出现了两次的数异或结果肯定为0,因此遍历一遍数组,将所有元素做异或操作,最后得到的数就是那个只出现了一次的数。
代码如下;
class Solution:
def singleNumber(self, nums: List[int]) -> int:
if not nums:
return None
res = 0
for num in nums:
res ^= num
return res
- CentOS6.5菜鸟之旅:文件权限详解
- CMD魔法堂:支持显示UTF8编码的中文
- 【设计模式】—— 模板方法Template
- 【设计模式】—— 策略模式Strategy
- MyBatis魔法堂:即学即用篇
- 【设计模式】—— 状态模式State
- php环境无法上传文件的解决方法
- Java魔法堂:JUnit4使用详解
- Windows魔法堂:解决“由于启动计算机时出现页面文件配置问题.......”
- Java魔法堂:自定义和解析注解
- 【Hibernate那点事儿】—— Hibernate应该了解的知识
- 【Hibernate那点事儿】—— Hibernate应该了解的知识
- Java魔法堂:以Windows服务的形式运行Java程序
- 【Hibernate那点事儿】—— Hibernate知识总结
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python自学成才之路 多进程开发
- Python自学成才之路 进程间通信
- android 功耗(1)---android 功耗分析方法和优化
- 为什么要写 tf.Graph().as_default()
- tf.get_variable_scope().reuse_variables() 的使用
- Tensorflow小技巧整理:
- Tensorflow学习笔记——Summary用法
- 神经网络优化(损失函数:自定义损失函数、交叉熵、softmax())
- C++ STL stack 用法
- 遍历string时 使用for(char& c : s) for(char c : s) 的区别
- vc dll静态函数导出
- 利用GDB调试 MSQL
- 手把手教学-MySQL主从复制架构转换MGR架构(mysq_shell版)
- 手把手教学-MySQL主从复制架构转换MGR架构(手动版)
- 云数据库VS自建数据库,到底该如何抉择?