我是 LeetCode.com 的新手,遇到了第一个问题(https://leetcode.com/problems/two-sum/solution/)。
针对上述问题提供了默认代码或模板,但正如我在其他人的解决方案中观察到的,他们将其简化为:
class Solution:
def twoSum(self, nums, target):
# ... code here ...
return [...]
Run Code Online (Sandbox Code Playgroud)
我不使用LeetCode提供的编辑器。我使用我自己的 IDE (VSCode)。每当我尝试创建自己的输入来测试我的代码时,我都会添加以下行:
x = Solution.twoSum("",[1, 7, 2], 9)
print(x)
Run Code Online (Sandbox Code Playgroud)
“ ”分配给self参数,以下列表用于nums,而9则用于target。
最初,我没有“”:
def twoSum([1, 7, 2], 9)
Run Code Online (Sandbox Code Playgroud)
所以我得到TypeError: TwoSum() Missing 1 required Positional argument: 'target'
这是人们真正测试代码的方式,通过将随机对象(在我的例子中是"")分配给self参数?或者还有其他更干净的方法吗?
我熟悉 OOP 的基础知识,所以我想也许应该有一个def __init__来初始化一些东西。然而,其他人的解决方案没有利用这一点。
这是我用于python的模板:
from typing import List
import collections
import itertools
import functools
import math
import string
import random
import bisect
import re
import operator
import heapq
import queue
from queue import PriorityQueue
from itertools import combinations, permutations
from functools import lru_cache
from collections import defaultdict
from collections import OrderedDict
from collections import deque
from collections import Counter
print(Solution().())
Run Code Online (Sandbox Code Playgroud)
对于twoSum,它将是:
from typing import List
import collections
import itertools
import functools
import math
import string
import random
import bisect
import re
import operator
import heapq
import queue
from queue import PriorityQueue
from itertools import combinations, permutations
from functools import lru_cache
from collections import defaultdict
from collections import OrderedDict
from collections import deque
from collections import Counter
class Solution:
def twoSum(self, nums, target):
index_map = {}
for index, num in enumerate(nums):
if target - num in index_map:
return index_map[target - num], index
index_map[num] = index
print(Solution().twoSum(nums=[2, 7, 11, 15], target=9))
print(Solution().twoSum(nums=[2, 7, 11, 15], target=18))
print(Solution().twoSum(nums=[2, 7, 11, 15], target=22))
Run Code Online (Sandbox Code Playgroud)
(0, 1)
(1, 2)
(1, 3)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4946 次 |
| 最近记录: |