我是靠谱客的博主 奋斗自行车,这篇文章主要介绍算法:一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。,现在分享给大家,希望可以做个参考。

// 示例
输入:nums = [4,1,4,6]
输出:[1,6][6,1]

输入:nums = [1,2,10,4,1,4,3,3]
输出:[2,10][10,2]

/**
* 时间:104 ms
* 内存:42.8 MB
*
* 1. 统计每个数字出现的次数,{1: 2, 2: 1, 3: 2, 4: 2, 10: 1}
* 2. 把出现次数为1的放入数组输出,["2", "10"]
* */
var singleNumbers = function(nums) {
	 const statistics = {};
	 const result = [];
	
	 nums.forEach(item => {
	     statistics[item] ? statistics[item]++ : statistics[item] = 1;
	 });
	
	 for (let key in statistics) {
	     if (statistics[key] === 1) {
	         result.push(key)
	     }
	 }
	
	 return result;
};

// todo 目前最优解好像是用位运算,以后学到再补上

最后

以上就是奋斗自行车最近收集整理的关于算法:一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。的全部内容,更多相关算法:一个整型数组内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(133)

评论列表共有 0 条评论

立即
投稿
返回
顶部