算法学习之路任重而道远
1. 两数之和
class Solution:
def twoSum(self, nums, target):
new_nums = sorted(nums)
end = 0
for num in new_nums:
if num == target/2 and new_nums[end+1] == target/2:
break
if num > target/2:
end = end - 1
break
end = end + 1
list = []
for i in range(end+1):
for j in range(end+1, len(nums)):
if new_nums[i] + new_nums[j] == target:
list.append(new_nums[i])
list.append(new_nums[j])
i = 0
new_list = []
for num in nums:
if num == list[0]:
new_list.append(i)
i = i + 1
continue
if num == list[1]:
new_list.append(i)
i = i + 1
return new_list
2. 两数相加
class Solution:
def addTwoNumbers(self, l1, l2):
list = [] # 存放相加和
num = 0 # 存储进位信息
while (l1.next is not None) and (l2.next is not None):
list.append((l1.val + l2.val + num) % 10)
num = (l1.val + l2.val + num) // 10
l1 = l1.next
l2 = l2.next
list.append((l1.val + l2.val + num) % 10)
num = (l1.val + l2.val + num) // 10
while l1.next is not None:
l1 = l1.next
list.append((l1.val + num) % 10)
num = (l1.val + num) // 10
while l2.next is not None:
l2 = l2.next
list.append((l2.val + num) % 10)
num = (l2.val + num) // 10
if num != 0:
list.append(num)
headNode = None
for item in list[::-1]:
tmp = ListNode(item)
tmp.next = headNode
headNode = tmp
return headNode
作为自己的刷题笔记,可能没有各位大佬们的思路好,请多包涵
持续施工中…