/** * @param {number[]}nums * @return {number} */ var singleNumber = function (nums) { nums.sort((a, b) => a - b); let i = 0; let j = nums.length - 1; while (i < j) { let mid = (j + i) / 2; if (nums[mid] !== nums[mid - 1]) { if (mid % 2 === 0) { i = mid; } else { j = mid - 1; } } if (nums[mid] !== nums[mid + 1]) { if (mid % 2 === 0) { j = mid; } else { i = mid + 1; } } } return nums[i]; };
对象唯一属性
1 2 3 4 5 6 7 8 9 10 11 12 13
var singleNumber = function (nums) { let obj = {}; for (let i = 0; i < nums.length; i++) { if (obj[nums[i]]) { delete obj[nums[i]]; } else { obj[nums[i]] = true; } } for (let key in obj) { return key; } };