# 题目描述

一个整型数组 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