Redian新闻
>
costco有卖Swiffer Wet Jet的refill吗?
avatar
costco有卖Swiffer Wet Jet的refill吗?# PennySaver - 省钱一族
k*g
1
这道题:
一个全是数字的array,只有一个出现的频率是偶数其他的都是奇数,把那个出线频率
是偶数的哥们找出来
avatar
a*e
2
就是前面的那个头,像paper towel似的薄薄的那种?还有这个东西是一次性的吗,用
一次就得换?
谢谢!
avatar
w*e
3
必须in place么
avatar
y*a
4
除非具体知道奇数的次数,否则没法常数空间。
空间时间 : 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;
}
avatar
u*o
5
我记得这题用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省空间呀
avatar
r*k
6
应该是时间空间都没省
时间还慢了点
有意思,算是一个思路,呵呵

【在 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省空间呀

avatar
a*p
7
把所有数字都看成z零一串,按位运算,求和后mod2.
assume array of int.
bit i of the result = sum of bit i in all int %2==0?1:0
return result.
avatar
Q*a
8
考虑[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.

avatar
r*s
9
XOR
这个玩意非常恶心

【在 k***g 的大作中提到】
: 这道题:
: 一个全是数字的array,只有一个出现的频率是偶数其他的都是奇数,把那个出线频率
: 是偶数的哥们找出来

avatar
z*u
10
XOR
不看过答案 基本想不出来吧
avatar
l*i
11
详细说说怎么xor?

【在 z*****u 的大作中提到】
: XOR
: 不看过答案 基本想不出来吧

avatar
w*e
12
上面两楼能不能说说XOR具体的步骤,会不会是看错题了
avatar
l*i
13
估计看错题了

【在 w******e 的大作中提到】
: 上面两楼能不能说说XOR具体的步骤,会不会是看错题了
avatar
j*d
14
这么多人都是在背leetcode答案。。。面试的时候直接露馅
avatar
l*i
15
不看题就写答案?
avatar
D*d
16
好吧没仔细看,看反了。

【在 l****i 的大作中提到】
: 不看题就写答案?
avatar
s*i
17
到底有比这两个更牛的算法没有?

【在 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)

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。