Python代码LeetCode与本地执行结果不一致问题排查
本地与LeetCode题解结果不一致的原因分析
我在LeetCode上解决了一道题,将题解稍作修改后在本地运行,却出现结果不一致的问题——LeetCode上所有测试用例都能完美通过,但本地运行结果不符合预期。一开始我以为是if语句中的not in在LeetCode和本地环境表现不同,折腾一上午后才发现是自己的笔误。
Python版本:Python 3.11.5
电脑系统:Windows 11
LeetCode解决方案
class Solution: def findDifference(self, nums1: List[int], nums2: List[int]) -> List[List[int]]: nums1 = set(nums1) nums2 = set(nums2) tmp1 = [] tmp2 = [] for i in nums1: if i not in nums2: tmp1.append(i) for i in nums2: if i not in nums1: tmp2.append(i) return [tmp1, tmp2]
输出:[[1,3],[4,6]]
本地解决方案
class Solution: def findDifference(self, nums1, nums2): nums1 = set(nums1) nums2 = set(nums2) tmp1 = [] tmp2 = [] for i in nums1: if i not in nums2: tmp1.append(i) for i in nums2: if i not in nums1: tmp2.append(i) return [tmp1, tmp2] nums1 = [1,2,3] nums2 = [2,4,6] execute = Solution() print(execute.findDifference(nums1, nums1))
输出:[[], []]
问题根源
本地代码调用方法时传参错误:execute.findDifference(nums1, nums1),把两个参数都传成了nums1,导致转换为集合后两个集合完全相同,自然找不到任何差异元素,输出[[], []]。只需将调用改为execute.findDifference(nums1, nums2),就能得到和LeetCode一致的结果。
内容的提问来源于stack exchange,提问作者Faisal Khan
相关产品推荐
相关产品推荐

