你会被询问。每个查询的格式为下面描述的两个整数:
1-:在数据结构中插入x。在
2-:从数据结构中删除一次y(如果存在)。在
3-:检查是否存在频率恰好为的整数。如果是,则打印1或0。在
输入示例: 查询=[(1,1),(2,2),(3,2),(1,1),(1,1),(2,1),(3,2)]
这个问题是不言自明的,我想我有一个像样的解决办法
循环查询,并在dict中相应地递增和递减每个数字的频率 ... 同时在一个单独的dict中记录另一个dict的每个键出现的次数
当检查查询3中是否存在频率恰好为y的整数时,您将检查第二个dict中y的计数是否存在。。。在
我通过了大多数测试用例,但有些测试失败了。。谁能解释一下我的思维缺陷吗。这真是要杀了我!在
def freqQuery(queries):
frequency = {}
results = []
frequencyValues = {}
for query in queries:
q = query[0]
val = query[1]
if q == 1:
frequency[val] = frequency.get(val, 0) + 1
freq = frequency[val]
frequencyValues[freq] = frequencyValues.get(freq, 0) + 1
frequencyValues[freq-1] = frequencyValues.get(freq-1, 1) - 1
elif q == 2:
if val in frequency.keys():
frequency[val] += - 1
if frequency[val] < 0:
frequency[val] = 0
freq = frequency[val]
frequencyValues[freq + 1] = frequencyValues.get(freq + 1, 1) - 1
frequencyValues[freq] = frequencyValues.get(freq, 1) + 1
elif q == 3:
if val in frequencyValues.keys():
if frequencyValues[val] > 0:
results.append(1)
else:
results.append(0)
else:
results.append(0)
return results
我的解决方案所有tc均接受
^{pr2}$第一种方法,但我在4个测试用例中超时
相关问题 更多 >
编程相关推荐