1. 兩數之和
題目連結:https://leetcode.cn/problems/two-sum/
給定一個整數陣列 nums 和一個整數目標值 target,請你在該陣列中找出 和為目標值 target 的那 兩個 整數,並返回它們的陣列下標。
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
num_dict = {}
for i, num in enumerate(nums):
complement = target - num
if complement in num_dict:
return [num_dict[complement], i]
num_dict[num] = i
return []
2. 兩數相加
題目連結:https://leetcode.cn/problems/add-two-numbers/
給你兩個 非空 的連結串列,表示兩個非負的整數。它們每位數字都是按照 逆序 的方式儲存的,並且每個節點只能儲存 一位 數字。
def addTwoNumbers(
self, l1: Optional[ListNode], l2: Optional[ListNode]
) -> Optional[ListNode]:
dummy = ListNode()
curr = dummy
carry = 0
while l1 or l2 or carry:
num1 = l1.val if l1 else 0
num2 = l2.val if l2 else 0
total = num1 + num2 + carry
carry = total // 10
curr.next = ListNode(total % 10)
curr = curr.next
if l1:
l1 = l1.next
if l2:
l2 = l2.next
return dummy.next