LeetCode---【和的操作】

目录

两数之和

我的答案

python 复制代码
class Solution(object):
    def twoSum(self, nums, target):
        leng=len(nums)
        for i in range(leng):
            for j in range(leng):
                if nums[i]+nums[j]==target and i!=j:
                    return [i,j]

在b站up那里学到的【然后自己复写】

  • 忘记怎么取list的第二个值了。【利用range的特性】
python 复制代码
class Solution(object):
    def twoSum(self, nums, target):
        leng=len(nums)
        for i in range(0,leng):
            for j in range(i+1,leng):
                if nums[i]+nums[j]==target and i!=j:
                    return [i,j]
  • 哈希表【空间换时间】
python 复制代码
class Solution(object):
    def twoSum(self, nums, target):
        mapping = {}
        for i in range(0, len(nums)):
            mapping[nums[i]] = i
        for j in range(0, len(nums)):
            diff = target - nums[j]
            if (diff in mapping and mapping[diff] != j):
                return [j,mapping[diff]];

和为 K 的子数组

在b站up那里学到的【然后自己复写】

python 复制代码
class Solution(object):
    def subarraySum(self, nums, k):
        count = 0
        dic={}
        dic[0] = 1
        cur_sum = 0
        for num in nums:
            cur_sum = cur_sum + num
            if cur_sum-k in dic:# 很巧的思路
                count=count+dic[cur_sum-k]
            if cur_sum in dic:
                dic[cur_sum] +=1
            else:
                dic[cur_sum] = 1
        return count        

三数之和

在b站up那里学到的【然后自己复写】

python 复制代码
class Solution(object):
    def threeSum(self, nums):
        resol=[]
        nums.sort()
        for i in range(len(nums)):
            cur = i
            if nums[cur]>0:
                return resol
            if cur>0 and nums[cur-1] == nums[cur]:
                continue # 去重
            left = cur+1
            right = len(nums)-1
            while left<right:
                total = nums[cur]+nums[left]+nums[right]
                if total >0:
                    right-=1
                elif total<0:
                    left+=1
                else:
                    resol.append([nums[cur],nums[left],nums[right]])
                    while left<right and nums[right-1]==nums[right]:# 去重
                        right-=1
                    while left<right and nums[left+1]==nums[left]:# 去重
                        left+=1
                    right-=1
                    left+=1               
        return resol

两数相加【链表】

我的半路答案:没有看到是链表

  • 我还没有写完,只是想半路测一下是否正确。
  • 关于链表的话,我相对还是弱一点,下次巩固。
python 复制代码
class Solution(object):
    def addTwoNumbers(self, l1, l2):
        resl=[]
        cur=0
        len1=len(l1)
        len2=len(l2)
        for i in range(min(len1,len2)):
            total=l1[i]+l2[i]+cur
            if total>10:
                cur=total/10
                resl.append(total%10)
            else:
                resl.append(total)
        return resl

在b站up那里学到的【复写失败后整理】

python 复制代码
class Solution(object):
    def addTwoNumbers(self, l1, l2):
        total = 0
        next1 = 0
        dummy = ListNode()
        cur = dummy#############必须得要一个临时变量,因为后面输出是从头开始输出
        while (l1 != None and l2 != None):
            total = l1.val + l2.val + next1
            cur.next = ListNode(total % 10)
            next1 = total // 10
            cur = cur.next##################不要忘记
            l1 = l1.next
            l2 = l2.next
        
        while l1 != None:
            total = l1.val + next1
            cur.next = ListNode(total % 10)
            next1 = total // 10
            cur = cur.next##################不要忘记
            l1 = l1.next
        
        while l2 != None:
            total = l2.val + next1
            cur.next = ListNode(total % 10)
            next1 = total // 10
            cur = cur.next##################不要忘记
            l2 = l2.next
        
        if next1 != 0:
            cur.next = ListNode(next1)
        
        return dummy.next
相关推荐
平谷一勺14 小时前
数据清洗-缺失值的处理
python·数据分析
末世灯光15 小时前
时间序列入门第一问:它和普通数据有什么不一样?(附 3 类典型案例)
人工智能·python·机器学习·时序数据
开心-开心急了15 小时前
Flask入门教程——李辉 第一、二章关键知识梳理(更新一次)
后端·python·flask
锦***林15 小时前
用 Python 写一个自动化办公小助手
开发语言·python·自动化
www.0215 小时前
微信克隆人,聊天记录训练专属AI(2.WeClone训练模型)
人工智能·python·微信·聊天克隆人·微信克隆人
码农多耕地呗15 小时前
力扣146.LRU缓存(哈希表缓存.映射+双向链表数据结构手搓.维护使用状况顺序)(java)
数据结构·leetcode·缓存
hadage23316 小时前
--- 数据结构 AVL树 ---
数据结构·算法
liu****16 小时前
8.list的使用
数据结构·c++·算法·list
阿拉丁的梦16 小时前
后期材质-屏幕冲击径向模糊
算法·材质
Gitpchy16 小时前
Day 20 奇异值SVD分解
python·机器学习