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
相关推荐
BK贝壳4 小时前
亿级用户签到位图选型复盘:用 bool-hybrid-array 扛冷启动打卡,也把它和 Roaring/Redis 的边界测清楚了
数据结构·python·性能优化·numpy
2601_966949655 小时前
如何根据研究的起止时间截取分钟级行情?Python 实战与 QuantDash 数据处理指南
开发语言·python·pandas·量化交易·1024程序员节·股票数据·quantdash
拓恒技术7 小时前
无人机巡检AI算法的工程化落地:从需求到交付的5个核心环节
人工智能·算法·无人机
晨曦中的暮雨7 小时前
限流算法——固定窗口、滑动窗口、漏桶、令牌桶
java·开发语言·算法
怕浪猫7 小时前
Claude Code vs Codex:Computer Use 实现原理深度拆解
算法·面试·github
文丑颜不良啊9 小时前
LeetCode876~900题目解析
java·leetcode
罗西的思考9 小时前
AI 时代的 “房谋杜断”:如何培养能力、品味与判断力
人工智能·算法·机器学习
淡海水9 小时前
07-02-源码-.NET Core GC分配路径
算法·unity·c#·.netcore·gc·1024程序员节
在世修行9 小时前
智学文枢:页面切换与跨页数据预填
python·桌面应用·signal·1024程序员节·pyside·跨页跳转·状态预填
2601_9628857210 小时前
如何用 Python 把 K 线重采样成任意周期?
开发语言·python