(一)题目描述
在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/shu-zu-zhong-shu-zi-chu-xian-de-ci-shu-ii-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
(二)输入、输出示例
示例 1:
输入:nums = [3,4,3,3] 输出:4
示例 2:
输入:nums = [9,1,7,9,7,9,7] 输出:1
(三)代码实现
方法1(php版):
解题思路
空间换时间。
1.将数组中的元素遍历1次。
2.设置一个新数组new,key为原数组的值,value为出现的次数。
3.最后使用array_search寻找新数组new中value为1的key即可。
代码实现
class Solution { /** * @param Integer[] $nums * @return Integer */ function singleNumber($nums) { $new = []; foreach ($nums as $k => $v){ if(key_exists($v, $new)){ $new[$v] ++; }else{ $new[$v] = 1; } } $key = array_search(1, $new); return $key; } }
(四)性能分析
运行时间 | 内存消耗 |
60ms | 15.9MB |