面试题答案
一键面试def check_dicts(dict1, dict2):
for key, value in dict1.items():
if key not in dict2 or value > dict2[key]:
return False
return True
优化思路
- 提前终止:上述代码在遍历
dict1
时,一旦发现不符合条件的键值对就立即返回False
,避免不必要的后续遍历,这本身就是一种简单有效的优化。 - 减少重复计算:这里不存在明显的重复计算情况,因为逻辑相对简单,主要操作就是对
dict1
进行遍历并对dict2
进行查询。 - 数据结构调整:如果
dict1
和dict2
非常大,在某些情况下可以考虑使用collections.Counter
,但对于本题判断键值对是否存在且满足大小关系的场景,原生字典操作已经比较高效,暂不适合使用Counter
进行优化。所以整体上目前代码的效率在当前场景下已经较高。