腾讯面试编程题

第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题

原文地址:https://www.cnblogs.com/graybird/p/10752696.html