costco有卖Swiffer Wet Jet的refill吗?# PennySaver - 省钱一族k*g2011-03-22 07:031 楼这道题:一个全是数字的array,只有一个出现的频率是偶数其他的都是奇数,把那个出线频率是偶数的哥们找出来
y*a2011-03-22 07:034 楼除非具体知道奇数的次数,否则没法常数空间。空间时间 : O(n) O(n)static List timeEfficient(int[]A) {Map m=new HashMap<>();for (int a:A)if (!m.containsKey(a)) m.put(a, 1);else m.put(a, m.get(a)+1);List rel=new ArrayList<>();for (Map.Entry e:m.entrySet())if (e.getValue()%2==0){rel.add(e.getKey());break;}return rel;}空间时间: O(1) O(nlogn)static List spaceEconomical(int[]A) {Arrays.sort(A);Listrel=new ArrayList<>();for (int s=0,e=s+1,n=A.length;swhile (eif ((e-s)%2==0) {rel.add(A[s]);break;}}return rel;}
u*o2011-03-22 07:035 楼我记得这题用xor也可以做,好像是先找unique elements比如说,1, 2, 2, 3unique element是 1 2 3然后xor这两个array, 1^2^2^3^1^2^3 = 2就找出来2了不过这个不比用hash table省空间呀
r*k2011-03-22 07:036 楼应该是时间空间都没省时间还慢了点有意思,算是一个思路,呵呵【在 u*****o 的大作中提到】: 我记得这题用xor也可以做,好像是先找unique elements: 比如说,1, 2, 2, 3: unique element是 1 2 3: 然后xor这两个array, 1^2^2^3^1^2^3 = 2: 就找出来2了: 不过这个不比用hash table省空间呀
a*p2011-03-22 07:037 楼把所有数字都看成z零一串,按位运算,求和后mod2.assume array of int.bit i of the result = sum of bit i in all int %2==0?1:0return result.
Q*a2011-03-22 07:038 楼考虑[1,3,3], [2,3,3]算法不成立【在 a******p 的大作中提到】: 把所有数字都看成z零一串,按位运算,求和后mod2.: assume array of int.: bit i of the result = sum of bit i in all int %2==0?1:0: return result.
r*s2011-03-22 07:039 楼XOR这个玩意非常恶心【在 k***g 的大作中提到】: 这道题:: 一个全是数字的array,只有一个出现的频率是偶数其他的都是奇数,把那个出线频率: 是偶数的哥们找出来
s*i2011-03-22 07:0317 楼到底有比这两个更牛的算法没有?【在 y**********a 的大作中提到】: 除非具体知道奇数的次数,否则没法常数空间。: 空间时间 : O(n) O(n): static List timeEfficient(int[]A) {: Map m=new HashMap<>();: for (int a:A): if (!m.containsKey(a)) m.put(a, 1);: else m.put(a, m.get(a)+1);: List rel=new ArrayList<>();: for (Map.Entry e:m.entrySet()): if (e.getValue()%2==0)