今天做了数组类的这几道题(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,