|      1wolegequ      2019-05-09 23:11:14 +08:00 via Android  2 跟 py 无关,位运算 | 
|  |      2meik2333      2019-05-09 23:12:20 +08:00 via Android | 
|      3lv2016      2019-05-09 23:14:04 +08:00 建立一个列表,从第一个数开始搜索,如果在列表里则删除,不在则加入,最后剩的数就是只出现一次的 | 
|  |      5megachweng      2019-05-09 23:18:49 +08:00 via iPhone counter? | 
|      6icreeper      2019-05-09 23:23:18 +08:00 via iPhone 数组里所有数取异或,这题在 leetcode 有 | 
|  |      7megachweng      2019-05-09 23:26:45 +08:00 ``` from collections import Counter l = [1, 1, 2, 3, 4, 5, 5, 4] c = Counter(l) print(c.most_common()[-1][0]) >>> 3 ``` | 
|  |      8xabc      2019-05-09 23:37:39 +08:00 数据放入集合,完成  😄 集合元素具有唯一性 | 
|  |      9mashpolo      2019-05-09 23:43:45 +08:00 via iPhone 二进制的异或最快 | 
|      10justfortest      2019-05-10 00:29:21 +08:00 遍历异或运算就行 | 
|  |      11CEBBCAT      2019-05-10 00:44:23 +08:00 via Android 不仅菜,还不会搜索…… 上升空间有限啊,加油吧 | 
|      12azh7138m      2019-05-10 01:25:08 +08:00 via Android  2 这不是菜,是蔡 | 
|  |      13inhzus      2019-05-10 01:46:07 +08:00 via Android  1 reduce(lambda x, y: x ^ y, array) | 
|  |      14dangyuluo      2019-05-10 02:00:06 +08:00 pythonic 的办法是用 set 和 diff | 
|  |      15huntzhan      2019-05-10 02:01:41 +08:00  2 蔡得口交 | 
|  |      16Nimrod      2019-05-10 02:41:24 +08:00 via Android 这种题就是你做一次以后都会做了 | 
|  |      1720015jjw      2019-05-10 02:58:05 +08:00 via Android xor | 
|      18luclee1996      2019-05-10 06:03:13 +08:00 via Android | 
|      19luozic      2019-05-10 07:26:53 +08:00 via iPhone python 可以用异或或者位运算,空间复杂度是 O(1 ),不过时间复杂度 O(n)。 | 
|  |      20jmc891205      2019-05-10 07:45:32 +08:00 改下题目: 一组数据中只有一个数字出现了一次。其他所有数字都是出现了多次的。 请找出这个数字。 还有什么讨巧的方法吗? | 
|  |      21robot9      2019-05-10 08:17:45 +08:00 XOR | 
|      23luozic      2019-05-10 08:47:19 +08:00 via iPhone 搞个树去处理,这种不就是压缩的算法? | 
|  |      26wlkq      2019-05-10 09:09:29 +08:00 使用 php 的函数实现了一下。python 也有对应的函数吧 $a = [1,2,3,4,5,6,7,8,9,10,1,2,3,4,6,7,8,9,10]; $a_r = array_reverse($a,true); $a_f = array_flip($a); $a_r_f = array_flip($a_r); $result = []; foreach ($a_f as $k => $v){ if($v != $a_r_f[$k]) continue; $result[] = $k; } // 输出 $result : [5] | 
|  |      27anyuhanfei      2019-05-10 09:11:20 +08:00 @jmc891205 用桶排序的一部分方法应该就可以吧,统计出每个元素出现的个数,数量为 1 的就是答案 | 
|  |      28bxb100      2019-05-10 09:32:21 +08:00 via Android ^ over | 
|      29lshu      2019-05-10 09:33:21 +08:00 按照我理解的题意 x1+x2+...+xn+x(n+1) = s1 根据题意 我们令 前 n 个为成对的 则 2(x1+x2+...+x(n/2)) + x(n+1) = s1 同除 2 得到公式 1 x1+x2+...+x(n/2) + x(n+1)/2 = s1/2 然后去重求和得到公式 2 x1+x2+...+x(n/2) + x(n+1) = s2 两式相减 结果 = 2*s2 - s1 程序如下 l = [1, 1, 2, 2, 7, 4, 5, 5, 4] print(2 * sum(set(l)) - sum(l)) == 7 | 
|  |      30bengxy      2019-05-10 09:42:48 +08:00  1 为啥大家对新人程序员这么不友好,不都是这么过来的吗?   只有有几个提出实质解法的,其他都在喷,感情你生下来就会异或运算? | 
|  |      31inhzus      2019-05-10 09:47:43 +08:00 via Android | 
|  |      32marsgt      2019-05-10 10:08:19 +08:00 贴个 leetcode 中文的链接吧: https://leetcode-cn.com/problems/single-number/ | 
|  |      33dovme      2019-05-10 10:16:43 +08:00 交换律:a ^ b ^ c <=> a ^ c ^ b 任何数于 0 异或为任何数 0 ^ n => n 相同的数异或为 0:n ^ n => 0 | 
|  |      34southsala      2019-05-10 10:23:05 +08:00 Java 实现就这个样子吧,遍历一遍异或运算。 异或刚好满足这个题目需求,这个题目考点应该就是异或运算。 两个相同的数比如 88 88,二进制是 1011000 1011000,异或位运算(相同为 0)结果 0000000,也就是 0。 public static int getResult(int[] nums){ int result = 0; for (int i = 0;i < nums.length ; i++){ result = result ^ nums[i]; } return result; } | 
|  |      35Vegetable      2019-05-10 10:25:55 +08:00 leetcode 里这题目好像还是不是 easy 呢.其实就是位运算. | 
|  |      36dovme      2019-05-10 10:33:38 +08:00 @southsala #34  public static int getResult(int[] nums){ for (int i = 1;i < nums.length ; i++){ nums[0] ^= nums[i]; } return result; } | 
|  |      37dovme      2019-05-10 10:36:26 +08:00 @dovme #36  public static int getResult(int[] nums){ for (int i = 1;i < nums.length ; i++){ nums[0] ^= nums[i]; } return nums[0]; } | 
|  |      38Achilless      2019-05-10 10:38:29 +08:00 s = [1, 1, 2, 2, 3, 4, 4] for i in s: s.remove(i) if i in s: continue else: print(i) break | 
|  |      39zzzmj      2019-05-10 11:50:48 +08:00 ....... 我感觉就算不知道 异或,纯数学应该也可以想到吧 sum(set(list)) * 2 - sum(list) | 
|      40chefdd      2019-05-10 15:48:12 +08:00 异或 | 
|  |      41zdnyp      2019-05-10 15:56:34 +08:00 >>> l = [1,2,3,4,1,2,3] >>> for i in l: ... if l.count(i) == 1: ... print(i) ... 4 >>> list 没有 count 方法吗? | 
|      42exonuclease      2019-05-10 15:57:36 +08:00 via iPhone 异或一遍 | 
|      43balaWgc      2019-05-10 16:07:56 +08:00 leetcode 上有,之前做过,异或遍历可得 | 
|      44lyc1116      2019-05-10 16:27:47 +08:00 在数组有序的前提下,复杂度能够优化到 O(logn), 思路是二分查找 | 
|  |      45c4f36e5766583218      2019-05-10 17:54:11 +08:00 这个三角函数我不会! | 
|      46brainfxxk      2019-05-10 17:57:07 +08:00 我觉得这种题真的很无聊... | 
|      47harpy      2019-05-11 00:27:21 +08:00 楼主既然想要做软件开发,还是要继续努力啊,不用位运算,这样的题目也不应该被难住。。可以想象面试官当时的表情。。。 |