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
相关推荐
Coder_Boy_4 分钟前
【物联网技术】- 基础理论-0001
java·python·物联网·iot
Jane-6667775 分钟前
C语言——表达式、语句、函数
c语言·开发语言·算法
FY_201811 分钟前
SubprocVecEnv 原理、详细使用方法
人工智能·python·机器学习
czliutz11 分钟前
使用pdfplumber库处理pdf文件获取文本图片作者等信息
python·pdf
Tony_yitao11 分钟前
12.华为OD机试 - N个选手比赛前三名、比赛(Java 双机位A卷 100分)
java·算法·华为od·algorithm
小龙报13 分钟前
【算法通关指南:数据结构与算法篇】树形结构遍历指南:DFS 递归深搜与 BFS 队列广搜实战解析
c语言·数据结构·c++·算法·链表·深度优先·visual studio
业精于勤的牙13 分钟前
浅谈:快递物流与算法的相关性(六)
算法
Sunhen_Qiletian14 分钟前
《Python开发之语言基础》第七集:库--时间库
前端·数据库·python
smile_Iris16 分钟前
Day 30 函数定义与参数
开发语言·python
qq_4335545416 分钟前
C++ 二维线性DP
c++·算法·图论