领扣LintCode算法问题答案-84. 落单的数 III

    科技2025-04-23  8

    领扣LintCode算法问题答案-84. 落单的数 III

    目录

    84. 落单的数 III描述样例 1:样例 2: 题解鸣谢

    84. 落单的数 III

    描述

    给出 2 * n + 2 个的数字,除其中两个数字之外其他每个数字均出现两次,找到这两个数字。

    样例 1:

    输入: [1,2,2,3,4,4,5,3] 输出: [1,5]

    样例 2:

    输入: [1,1,2,3,4,4] 输出: [2,3]

    题解

    public class Solution { /** * @param A: An integer array * @return: An integer array */ public List<Integer> singleNumberIII(int[] A) { // write your code here List<Integer> ret = new ArrayList<>(); if (A.length == 2) { ret.add(A[0]); ret.add(A[1]); return ret; } Arrays.sort(A); for (int i = 1; i < A.length - 1; i++) { int preN = A[i - 1]; int n = A[i]; int nextN = A[i + 1]; if (n != nextN && n != preN) { ret.add(n); if (ret.size() == 2) { return ret; } } } if (A[0] != A[1]) { ret.add(A[0]); } if (A[A.length - 1] != A[A.length - 2]) { ret.add(A[A.length - 1]); } return ret; } }

    原题链接点这里

    鸣谢

    非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。 欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。

    Processed: 0.010, SQL: 8