# 题目描述
一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)
限制:
2 <= nums.length <= 10000
# 测试用例
用例1:
- 输入:
nums = [4,1,4,6]
- 输出:
[1,6] 或 [6,1]
用例2:
- 输入:
nums = [1,2,10,4,1,4,3,3]
- 输出:
[2,10] 或 [10,2]
# 思路
indexOf和lastIndexOf
# 代码实现
var __readline = require("readline-sync");
__readline.setDefaultOptions({ prompt: "" });
var readline = __readline.prompt;
console.log("请输入nums: ");
let nums = readline().split(",").map(Number);
/**
* @param {number[]} nums
* @return {number[]}
*/
var singleNumbers = function (nums) {
let res = [];
for (let num of nums) {
if (nums.indexOf(num) === nums.lastIndexOf(num)) {
res.push(num);
if (res.length == 2) {
break;
}
}
}
return res;
};
const res = singleNumbers(nums);
console.log("结果为: ", res);
/*
请输入nums:
4,1,4,6
结果为: [ 1, 6 ]s
请输入nums:
1,2,10,4,1,4,3,3
结果为: [ 2, 10 ]
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36