1,2--LeetCode-python笔记

本文详细解析了两种经典算法问题:一是寻找整数数组中和为目标值的两个数并返回其下标;二是将两个逆序存储的链表表示的非负整数相加,返回新的链表表示的和。通过具体实现代码,展示了哈希表在提高查找效率上的应用,以及链表操作的基本技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

 

(1)class Solution(object):
    def twoSum(self, nums, target):
        l={}
        for i in range(len(nums)):   #必须地址遍历,否则俩个数一样index时都是前。
            if nums[i] in l:
                
                return [l[nums[i]],i]
            else:
                l[target-nums[i]]=i          #存的是地址

  
(2)哈希表,O(n)
class Solution(object):
    def twoSum(self, nums, target):
        n={}
        for i,v in enumerate(nums):
            if v in n:                                   
                return[n[v],i]
            else:
                n[target-v]=i                      
#把target-v当成值存入字典n,值为v的地址                                                          

#在后面遍历中n若有target-v,把字典中的值即前面的地址,和当前地址输出

 

二.

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

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

 

(1)class Solution:
   

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution(object):
    def addTwoNumbers(self, l1, l2):
        p_head=p=ListNode(0)
       
        while l1 and l2:
            p.next=ListNode(l1.val+l2.val)
            p=p.next
            l1=l1.next
            l2=l2.next
        if l1:
            p.next=l1
        if l2:
            p.next=l2
        p=p_head.next
        a=0
        while p :
            
            if p.val+a>=10:
                p.val=p.val+a-10
                a=1
            else:
                p.val=p.val+a
                a=0
            if p.next == None:
                break
            else:
                p=p.next
        if a==1:
            p.next=ListNode(1)
        return p_head.next

        

期末大作业基于python的足球运动员数据分析源码+数据集(高分项目),个人经导师指导并认可通过的高分设计项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做大作业、毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于pyth
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值