第一题 两数之和 class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: l = len(nums) for i in range(l-1): for j in range (i+1,l): r = nums[i] + nums[j] if (r == target): state = True return [i , j]
示例代码:
class Solution_1: def twoSum(self, nums: List[int], target: int) -> List[int]: n = len(nums) harsh_table = dict() for i in range(n): if target - nums[i] in harsh_table: return [harsh_table[target - nums[i]],i] else: harsh_table[nums[i]] = i return []
收获,尝试逆向思考
23-7-2
两数相加:(链表)
示例代码:
# Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode]) -> Optional[ListNode]: if not l1: return l2 if not l2: return l1 l1.val += l2.val # 将两数相加,赋值给 l1 节点 if l1.val >= 10: l1.next = self.addTwoNumbers(ListNode(l1.val // 10), l1.next) l1.val %= 10 l1.next = self.addTwoNumbers(l1.next, l2.next) return l1