写点什么

LeetCode 题解:137. 只出现一次的数字 II,排序后搜索,JavaScript,详细注释

作者:Lee Chen
  • 2023-03-16
    福建
  • 本文字数:357 字

    阅读完需:约 1 分钟

LeetCode题解:137. 只出现一次的数字 II,排序后搜索,JavaScript,详细注释

原题链接:https://leetcode.cn/problems/single-number-ii/


解题思路:


  1. 将数组排序,除了只出现一次的数字,其他都是以3个一组的形式出现。

  2. 遍历数组,每次索引i指向的都是3个数字中的第1个。

  3. 如果nums[i]nums[i + 1]不相等,那么nums[i]只出现了一次。

  4. 如果nums[i]nums[i + 1]相等,那么查找下一组数字,即i = i + 3


/** * @param {number[]} nums * @return {number} */var singleNumber = function (nums) {  // 将数组排序  nums.sort((a, b) => a - b)
// 遍历nums,查找只出现1次的值 // 如果相邻两个数字相同,那么nums[i]肯定出现了3次,下次从i+3位置开始搜索 for (let i = 0; i < nums.length; i += 3) { // 如果遇到相邻两个数字不相等,nums[i]肯定只出现过一次 if (nums[i] !== nums[i + 1]) { return nums[i] } }}
复制代码


发布于: 刚刚阅读数: 2
用户头像

Lee Chen

关注

还未添加个人签名 2018-08-29 加入

还未添加个人简介

评论

发布
暂无评论
LeetCode题解:137. 只出现一次的数字 II,排序后搜索,JavaScript,详细注释_JavaScript_Lee Chen_InfoQ写作社区