更具体地讲,某数组长度为 N+1(乱序),整个数组取遍 1~N 的全部 N 个数,显然其中一个数出现了两次,找出这个数;

  • (1)将这 N + 1 个数,以及 1 ~ N 这 N 个数(数组中出现 2 次 ⇒ 出现三次),整体异或,最终得到的结果即为这个出现两次的数;

  • (2)全部相加 - (1+N)*N/2

    • 注意相加(相乘)时数值溢出的可能;
posted on 2016-09-24 13:40  未雨愁眸  阅读(128)  评论(0编辑  收藏  举报