27届春招备战一轮复习--第七期

27届春招备战一轮复习--第七期

未经作者允许,禁止转载
----作者:王贵祥

今天,我们来写点算法

题目一:(难度极低)

实现一个十进制数字报数程序,请按照数字从小到大的顺序返回一个整数数列,该数列从数字 1 开始,到最大的正整数 cnt 位数字结束。

示例 1:

输入:cnt = 2
输出:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99]

问:

class Solution:
    def countNumbers(self, cnt: int) -> List[int]:

答:

class Solution:
    def countNumbers(self, cnt: int) -> List[int]:
        max = 10**cnt
        return [i for i in range(1, max)]        

题目二(正常难度了):

2. 两数相加 - 力扣(LeetCode)

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

请你将两个数相加,并以相同形式返回一个表示和的链表。

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

# 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]:

答:

#from typing import Optional
# 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]:
        l3=ListNode(0)
        current=l3   #l3为结果链表的头结点,l3.next为结果链表的第一个节点
        jinwei=0    #判断进位
        while l1 or l2 or jinwei:
            if l1:
                l1_tmp=l1.val
            else:
                l1_tmp=0
            if l2:
                l2_tmp=l2.val
            else:
                l2_tmp=0
            total=l1_tmp+l2_tmp+jinwei
            jinwei=total//10  #取整后的商为进位
            current_value=total%10  #取余后的数为当前节点的值
# “%” 运算符:用于取余运算,返回两个数相除的余数。例如,156 % 10 的结果是 6。
# “//” 运算符:用于地板除法,返回两个数相除的结果,向下取整。例如,157 // 10 的结果是 15。
            current.next=ListNode(current_value)  #创建新节点
            current=current.next  #current指向新节点
            if l1:
                l1=l1.next
            if l2:
                l2=l2.next
        return l3.next
posted @ 2025-09-23 14:06  guixiang  阅读(8)  评论(0)    收藏  举报