第1题:
####solution1##########case通过率为100% import copy input_l=input().strip() try: n=int(input_l) res = [] for i in range(n): t = input() res.append(int(t)) res2 = copy.deepcopy(res) minl = res[0] maxl = res[n - 1] j = 0 temp = 0 while j < n - 1: res.sort() a = res.pop() b = res.pop() res.append(a * b + 1) j = j + 1 minl = res[0] k = 0 while k < n - 1: res2.sort() a = res2.pop(0) b = res2.pop(0) res2.append(a * b + 1) k = k + 1 maxl = res2[0] print(maxl - minl) except ValueError: print("输入的不是数字")
解析:每次将列表中最大两个数进行指定运算后去除,将运算结果加入列表,这样得到最后一个数是最小数
每次将列表中最小的两个数进行指定运算后去除,将运算结果加入列表,这样得到最后一个数是最大数
第2题:
第1题
同 Leetcode的第2题
# Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode: cur=ListNode(0) head=cur temp=0 a=0 while l1 and l2: a=l1.val+l2.val+temp temp=0 if a>=10: temp=a//10 a=a%10 node=ListNode(a) cur.next=node l1=l1.next l2=l2.next cur=cur.next while l2: a=l2.val+temp temp=0 if a>=10: temp=a//10 a=a%10 node=ListNode(a) cur.next=node l2=l2.next cur=cur.next while l1: a=l1.val+temp temp=0 if a>=10: temp=a//10 a=a%10 node=ListNode(a) cur.next=node l1=l1.next cur=cur.next if temp: node=ListNode(temp) cur.next=node cur=cur.next return head.next
第2题