leetcode2021年度刷题分类型总结(九)双指针法 (python)

DW1000芯片实战:如何用UWB技术打造10厘米精度的室内定位系统(附Arduino代码) 本文是一份基于DW1000芯片和UWB技术的实战指南,详细介绍了如何从零构建一个精度可达10厘米的室内定位系统。内容涵盖硬件选型与连接、软件环境配置、核心的双向测距算法实现,并深入探讨了信号干扰抑制、功耗优化等实战挑战,为物联网开发者提供了完整的Arduino代码和部署思路。 阅读详情

例一.27. 移除元素

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

输入:nums = [3,2,2,3], val = 3
输出:2, nums = [2,2]
解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。

class Solution(object):
    def removeElement(self, nums, val):
        """
        :type nums: List[int]
        :type val: int
        :rtype: int
        """
        #双指针法(快慢指针)
        #
        slowinx=0
        fastinx=0
        n=len(nums)

        while fastinx<=n-1:
            if nums[fastinx]!=val:
                nums[slowinx]=nums[fastinx]
                slowinx+=1
            fastinx+=1

        return slowinx


        #暴力解法
        #此解法的难点在于循环次数是个变量,即数组的长度在变
        #每次移动数组都要把尾部的冗余数剔除
        #python:for循环range中不允许有变量
        n=len(nums)

        i=0
        while i<=n-1:
            if nums[i]==val:
                for j in range(i+1,n):
                    nums[j-1]=nums[j]
                i-=1 #因为下标i以后的数值都向前移动了一位,所以i也向前移动一位
                n-=1 # 此时数组的大小-1
            i+=1
        return n
        

例二.977. 有序数组的平方

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
输入:nums = [-4,-1,0,3,10]
输出:[0,1,9,16,100]
解释:平方后,数组变为 [16,1,0,9,100]
排序后,数组变为 [0,1,9,16,100]

class Solution(object):
    def sortedSquares(self, nums):
        """
        :type nums: List[int]
        :rtype: List[int]
        """
        #暴力
        n=len(nums)
        tmp=[]
        for i in range(n):
            tmp.append(nums[i]*nums[i])
        tmp.sort()
        return tmp

        #双指针
        #首位双指针
        n=len(nums)
        tmp=[]
        left,right=0,n-1
        while left<=right:
            if nums[left]<0: #当数组中存在负数
                if -nums[left]>nums[right]:
                    tmp.append(nums[left]*nums[left])
                    left+=1
                else: #当数组中都是正数
                    tmp.append(nums[right]*nums[right])
                    right-=1
            else:
                tmp.append(nums[right]*nums[right])
                right-=1
        # print(tmp)
        tmp.reverse() #也可以先声明一个n长的tmp一维数组,再从后往前填数,就不用reverse了

    
        return tmp

例三.209. 长度最小的子数组

给定一个含有 n 个正整数的数组和一个正整数 target 。

找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。

输入:target = 7, nums = [2,3,1,2,4,3]
输出:2
解释:子数组 [4,3] 是该条件下的长度最小的子数组。

class Solution(object):
    def minSubArrayLen(self, target, nums):
        """
        :type target: int
        :type nums: List[int]
        :rtype: int
        """
        #滑动窗口
        #重点:需要弄清滑动窗口的机制,什么时候左边指针动,什么时候右边指针动
        #while addnums>=target: left+=1
        #当走出while addnums>=target: 右指针动
        n=len(nums)
        left=0
        res=[]

        addnums=0
        cnt=0

        for right in range(n):
            addnums+=nums[right]
            # right+=1
            cnt+=1
            while addnums>=target:
                res.append(cnt)
                # print(res)
                cnt-=1
                addnums-=nums[left]
                left+=1  
           
        if res:
            return min(res)
        return 0

        #暴力解法(超出时间限制)
        n=len(nums)
        res=[]
        for i in range(n):
            addnums=0
            cnt=0
            for j in range(i,n):
                cnt+=1
                addnums+=nums[j]
                if addnums>=target:
                    res.append(cnt)
                    break
        if res:
            return min(res)

        return 0

例四.344. 反转字符串

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。

不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。

输入:s = [“h”,“e”,“l”,“l”,“o”]
输出:[“o”,“l”,“l”,“e”,“h”]

class Solution(object):
    def reverseString(self, s):
        """
        :type s: List[str]
        :rtype: None Do not return anything, modify s in-place instead.
        """
        #双指针法
        n=len(s)
        left,right=0,n-1
        tmp=""

        while left<right:
            tmp=s[left]
            s[left]=s[right]
            s[right]=tmp
            left+=1
            right-=1

        return s


        #调库函数 考试时不推荐使用
        # s.reverse()
        # return s

例五.541. 反转字符串 II

给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。

如果剩余字符少于 k 个,则将剩余字符全部反转。
如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。
输入:s = “abcdefg”, k = 2
输出:“bacdfeg”

class Solution(object):
    def reverseStr(self, s, k):
        """
        :type s: str
        :type k: int
        :rtype: str
        """
        # s="abcdefg"
        # k=8
        # 双指针法
        s=list(s)
        n=len(s)

        left0,right0=0,k-1 #left 和right各自的初始位置
        while left0<n-1:
            left,right=left0,right0 #初始化left,right
            leng=len(s[left0:n]) #单独处理剩余部分 
            if leng<k: #剩余字符少于 k 个,剩余全部反转
                right=n-1
            #剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,正常程序处理即可
            tmp=""
            
            while left<right:
                tmp=s[left]
                s[left]=s[right]
                s[right]=tmp
                left+=1
                right-=1

            left0+=2*k  #按要求翻转后初始位置+=2*k
            right0+=2*k

        return "".join(s)

        #同样的方法,但把翻转部分写成函数
        def reverse_substring(text):
            left, right = 0, len(text) - 1
            while left < right:
                text[left], text[right] = text[right], text[left]
                left += 1
                right -= 1
            return text
        
        res = list(s)

        for cur in range(0, len(s), 2 * k): #从头到尾步长2k
            res[cur: cur + k] = reverse_substring(res[cur: cur + k]) #前k个翻转
        
        return ''.join(res)

例六.206. 反转链表

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution(object):
    def reverseList(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        #递归法
        def dfs(pre,curNode):
            if not curNode:
                return pre #curNode=None时,进行最后的返回
            nextNode=curNode.next #保存下一节点
            curNode.next=pre #翻转
            return dfs(curNode,nextNode) #进行下一步
             
        return dfs(None,head) #返回的pre是最终结果


        #双指针法
        #别忘记尾部的None
        tail=None
        if not head:
            return None
        if not head.next:
            return head
        
        curNode=head.next
        nextNode=head.next.next
        head.next=tail
        while curNode and nextNode:
            #翻转
            curNode.next=head
            head=curNode
            curNode=nextNode
            nextNode=curNode.next

        if head and curNode and not nextNode: #处理两个节点
            curNode.next=head

        return curNode

        ##简化版双指针代码
        #(虽然都是双指针,这里pre = None cur = head的方式显然更简单,可以省去很多情况讨论)
        cur = head   
        pre = None
        while(cur!=None):
            temp = cur.next # 保存一下 cur的下一个节点,因为接下来要改变cur->next
            cur.next = pre #反转
            #更新pre、cur指针
            pre = cur
            cur = temp
        return pre

例七.24. 两两交换链表中的节点

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

输入:head = [1,2,3,4]
输出:[2,1,4,3]

思路:通过pre\cur\tmp三个指针的移动来改变链表,同时要注意当节点个数是单数时的情况,还有到了链表尾部的None时特别注意。

class Solution(object):
    def swapPairs(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        if not head:
            return None
        if not head.next:
            return head
        
        pre=head
        cur=pre.next
        res=cur

        while cur:
            tmp=cur.next
            cur.next=pre
            if not tmp or not tmp.next:
                pre.next=tmp
                break
            pre.next=tmp.next #当tmp.next为None
            pre=tmp
            cur=tmp.next #当tmp为None


        return res

例八.19. 删除链表的倒数第 N 个结点

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
输入:head = [1,2,3,4,5], n = 2
输出:[1,2,3,5]

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution(object):
    def removeNthFromEnd(self, head, n):
        """
        :type head: ListNode
        :type n: int
        :rtype: ListNode
        """
        #双指针+虚拟头节点
        #设置一个虚拟头结点,这样原链表的所有节点就都可以按照统一的方式进行移除了;还便于返回结果
        #思路:fast先抢跑n+1步,之后slow和fast同步移动,这样slow和fast间就能有n+1的间隔
        #fast到达链表尾部时,slow指向数的下一个数就是要删除的数
        head_dummy=ListNode()
        head_dummy.next=head

        slow,fast=head_dummy,head_dummy
        n+=1
        while n:
            fast=fast.next
            n-=1

        while fast:
            fast=fast.next
            slow=slow.next
        
        slow.next=slow.next.next
        return head_dummy.next


        #直接暴力
        #缺点:走了两遍链表
        leng=1
        head_copy=head
        res=head
        while head_copy.next:
            leng+=1
            head_copy=head_copy.next

        cnt=leng-n #删除第cnt+1个节点
        if cnt==0:
            head=head.next
            return head

        while cnt>1:
            head=head.next
            cnt-=1
        #当cnt==1 或者 cnt>1
        if head.next:
            head.next=head.next.next

        return res

例九.面试题 02.07. 链表相交

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。

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

class Solution(object):
    def getIntersectionNode(self, headA, headB):
        """
        :type head1, head1: ListNode
        :rtype: ListNode
        """
        #快慢指针求解链表相交
        #走你走过的路
        headA_copy=headA
        headB_copy=headB

        while headA or headB:
            if headA!=headB:
                if  headA:
                    headA=headA.next
                else:
                    headA=headB_copy
                if  headB:
                    headB=headB.next
                else:
                    headB=headA_copy  
            else:
                return headA

        if not headA and not headB:
            return None

例十.142. 环形链表 II

给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。

不允许修改 链表。

输入:head = [3,2,0,-4], pos = 1
输出:返回索引为 1 的链表节点
解释:链表中有一个环,其尾部连接到第二个节点。
思路:

  1. 判断链表是否环:分别定义 fast 和 slow 指针,从头结点出发,fast指针每次移动两个节点,slow指针每次移动一个节点,如果 fast 和 slow指针在途中相遇 ,说明这个链表有环。
  2. 如果有环,如何找到这个环的入口:从头结点出发一个指针,从相遇节点 也出发一个指针,这两个指针每次只走一个节点, 那么当这两个指针相遇的时候就是 环形入口的节点。
# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution(object):
    def detectCycle(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """

        slow,fast=head,head

        if fast==None:
            return None
        
        if fast.next==None:
            return None

        fast=fast.next.next
        slow=slow.next

        while slow!=fast and fast and fast.next:
            fast=fast.next.next
            slow=slow.next

        if slow==fast:
            while slow!=head:
                head=head.next
                slow=slow.next
            return slow


        if fast==None or fast.next==None:
            return None

浮点数加法器设计 一.设计内容及其要求 内容 根据浮点数的运算规则和IEEE754标准,实现浮点数的加法运算器。 要求: 浮点数格式:符号位1位,阶码8位,尾数23位 要求该实验能完整的体现浮点数的运算的五个步骤:对阶、尾数求和、规格化、舍入(要求使用对偶舍入)、溢出判断。 二.基本要素 浮点数 浮点数即实数,实数是所有有理数和无理数的集合。它之所以被称作浮点数,是因为小数点在数中的位置并不是固定的。一个浮点数值分为两部分存储:数值以及小数点在数值中的位置。 计算机中的浮点运算的计算结果一般是不确定的,一块芯片的浮点运算 阅读详情

相关推荐

给STM32F103的7寸屏找个新UI:LVGL 8.2裸机移植保姆级教程(附避坑清单)

本文详细介绍了如何将LVGL 8.2裸机移植到STM32F103开发板,特别针对7寸大屏(800×480分辨率)进行优化配置。从环境准备、工程搭建到显示驱动移植、内存优化与性能调优,提供完整的解决方案和避坑清单,帮助开发者快速实现美观的用户界面。

weixin_29181861的博客 413

python刷题用leet_GitHub - Yolymaker/leetcode-python: 利用python分类刷leetcode题目

leetcode分类高效刷题leetcode是一个很好的学习算法的一个online judge的网站,通过刷题能够快速提升自己的算法能力。但是令大家都头疼的就是,怎么能够高效的通过leetcode刷题掌握算法的做题技巧,并且顺利通过面试。刷题的时候千万不要怀疑自己的智商,不要怀疑自己的智商,不要怀疑自己的智商每个人都要经历从无到有的过程,刚开始都是不会(大佬请自动忽略),一度怀疑自己的智商。刚开始...

weixin_39835792的博客 264

V-REP(Cooprliesim EDU)自学笔记 实现UR5机械臂末端按轨迹移动

V-REP(Cooprliesim EDU)自学笔记 实现UR5机械臂末端按轨迹移动

xu_white的博客 7583

Python:LeetCode-双指针(脑回路清奇的双指针)

移除元素

weixin_66118670的博客 267

手把手教你搞定JBI投稿:从Statement of Significance到Declaration Statement的保姆级避坑指南

本文提供了一份详细的JBI投稿指南,重点解析Statement of Significance和Declaration of Interests的撰写技巧,帮助研究者避开常见格式陷阱。通过实战案例和检查清单,确保投稿符合JBI的学术严谨性和临床转化价值要求,提升稿件通过率。

weixin_29278805的博客 617

Enterprise Architect 中文经典教程

本文使用到的EA工程文件下载 一、Enterprise Architect简介 Enterprise Architect是一个对于软件系统开发有着极好支持的CASE软件(Computer Aided Software Engineering)。EA不同于普通的UML画图工具(如VISIO),它将支撑系统开发的全过程。在需求分析阶段,系统分析与设计阶段,系统开发及部署等方面有着强大的支持,...

2万+

leedcode:双指针(python)

双指针

chunchun2021的博客 308

保姆级教程:用HFSS 2023 R2搞定GPS右旋圆极化微带天线(从建模到优化全流程)

本文提供了一份详细的HFSS 2023 R2教程,指导读者从零开始设计GPS右旋圆极化微带天线。涵盖建模、仿真和优化全流程,特别关注圆极化特性的实现与优化,帮助工程师快速掌握天线设计的关键技术。

weixin_42557830的博客 169

LeetCode刷题---21.合并两个有序链表(双指针)

大家好,又见面了,我是夜阑的狗,本文是专栏【LeetCode题解】专栏的第17篇文章,主要讲解是LeetCode21.合并两个有序链表(双指针)。【LeetCode题解(持续更新中)】, 此专栏是我是夜阑的狗对LeetCode问题的讲解,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。以上就是今天要讲的内容,这一题还是比较简单的,一看到这题的时候就立马想到同时遍历两个链表,然后把其中一个链表当做返回参数,让第二个链表的节点往里面插入即可。

JMFive的博客 1070

数字游民产业小报告 · 2025

2025 年全球数字游民约(不同统计口径差异很大,低估法约 4,000 万,高估法 8,000 万),美国来源占比最高。:2025 Q1 约岗位允许一定程度远程;2024 年美国员工至少部分远程(全球 2023 年约 28%)。:到 2025 年,提供数字游民/远程工作签证(媒体口径 50–73 个不等;福布斯 66、Citizen Remote 50+、有机构清单称 73)。:以英国为例,期望未来一年全勤到岗、企业因强制返岗出现离职,说明“灵活/远程”仍是劳动力市场的筹码之一。

Anthony1453的博客 1465

YOLO骨干网络改进-第1篇:深度解析YOLOv8的C2f模块原理与实现

首先,需要将自定义的C2f模块注册到Ultralytics的模块字典中。# 注册自定义模块"""自定义的C2f模块。"""# 自定义YOLOv8s配置文件:yolov8s_custom.yamlscales:# Backbonebackbone:# Headhead:# 加载自定义模型# 训练模型imgsz=640,batch=16,device=0,workers=8,设计理念:C2f模块是C3模块的演进,通过增加梯度分支来丰富梯度流,提升特征表示能力。结构原理。

2201_76125393的博客 109

leetcode刷题总结--链表问题(python)双指针法

链表中的双指针问题(python)

vinojie的博客 620

Xilinx_JESD204B

Xilinx_JESD204B_AXI配置 说明:通过FPGA的高速数据接口JESD204B对AD9625进行高速采集。 环境:Vivado2018.3。 IP核:JESD204(7.2)。 参考手册:pg066_jesd204 v7.2。 资料以及IP_licence:JESD204B AXI协议资料:AXI 文章目录JESD204B概述JESD204B接口术语JESD204B 层JESD204B_AXI介绍AXI介绍JESD204B__AXI_Lite接口AXI-Lite接口介绍AXI-Lite接口信号

Crazzy_M的博客 1万+

leetcode2021年度刷题分类型总结(十)哈希表 (python)

例一:202. 快乐数 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。 如果这个过程 结果为 1,那么这个数就是快乐数。 如果 n 是 快乐数 就返回 true ;不是,则返回 false 。 输入:n = 19 输出:true 解释: 12 + 92 = 82 82 + 22 = 68 62 + 82 = 100 12 + 02 + 02 = 1

goodgoodstudy___的博客 451

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

leetcode2021年度刷题分类型总结(六)链表 (python/c++)

链表 题目总结 python

goodgoodstudy___的博客 1225

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

leetcode 160. intersection-of-two-linked-lists 相交链表 python3

时间:2020-7-1 题目地址:https://leetcode-cn.com/problems/intersection-of-two-linked-lists/ 题目难度:Easy 题目描述: 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交。 示例 1: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3 输出:R

isabloomingtree的博客 199

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

16亿免费Tokens实战测评:Claude Code与MiMo-V2.5模型深度对比与应用指南

大模型推理是人工智能应用落地的核心环节,其本质是通过计算海量tokens(文本基本单元)来理解和生成内容。理解tokens的消耗原理,有助于开发者高效利用计算资源,优化AI应用的成本与性能。在工程实践中,针对不同任务选择合适的模型至关重要,例如代码生成需要精准的语法理解,而多模态任务则依赖图文综合处理能力。本次基于小米MiLM平台提供的16亿免费推理tokens,我们对Claude Code和MiMo-V2.5两大模型进行了实战测评。Claude Code在代码生成、调试和系统设计方面展现出专业级能力,是开

weixin_33755557的博客 475

LeetCode常见题型——双指针

双指针主要用于遍历数组,协同完成任务,也可延伸到多数组多指针。

贫道绝缘子的博客 1555

面试刷题总结:双指针 & 滑动窗口 & 双端遍历 (LeetCode)

目录前言题目列表两个链表的第一个公共节点考试的最大困扰度字符的最短距离 前言 双指针与滑动窗口是一类比较容易理解的题型 广泛应用于链表与数组类型题目中 题目列表 两个链表的第一个公共节点 https://leetcode-cn.com/problems/liang-ge-lian-biao-de-di-yi-ge-gong-gong-jie-dian-lcof 输入两个链表,找出它们的第一个公共节点。 题目ID:2322 解题思路 根据两个链表长度和相同,指针速度相同总会相遇 两个跑速一样的人在不

九九六.爱吸油 773

LeetCode的双指针解法合集(python)

文章目录文章简述LeetCode26——删除有序数组的重复项LeetCode27——移除元素LeetCode160——相交链表LeetCode141——环形指针小结 文章简述 笔者刚刚开始刷力扣,才刷了二十来道,便发现许多利用双指针解题的题目,于是便想一次性小结一下,便于发现异同,熟悉此类解法。 LeetCode26——删除有序数组的重复项 思路:题目有要求必须原地删除,切要求O(1)的额外空间,所以我们需要在原数组上进行处理。此时设有两个快慢两个指针,当快指针遇到的值与上一个值不相同时,即与slow交换

weixin_51871724的博客 1357

给定一个含有n个正整数的数组和一个正整数target 。找出该数组中满足其和≥ target的长度最小的连续子数组 [nums1, nums1+1, ..., numsr-1 , numsr],并返回

给定一个含有n个正整数的数组和一个正整数target 。找出该数组中满足其和≥ target的长度最小的连续子数组 [nums1, nums1+1, …, numsr-1 , numsr],并返回其长度。如果不存在符合条件的子数组,返回0

qq_68055729的博客 1502

LeetCode Python题解(一)----双指针法

算法思想 1.双指针法 2.排序 3.贪心思想 4.二分查找 5.分冶 6.搜索 7.动态规划 8.数学 1. 双指针法: 双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。 1.1 有序数组的 Two Sum 题目描述:在有序数组中找出两个数,使它们的和为 target。 Input: numbers={2, 7, 11, 15}, target=9 Output: inde...

谜月的博客 5009

LeetCode 每日一题 2026/11/2-2026/11/8

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步

AlphaTao的博客 173

LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等)

LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等) 题目描述: 给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。 两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串: - s = s1 + s2 + ... + sn - t = t1 + t2 + ... + tm - |n - m| <= 1 - 交错 是 s1 + t

huayimenghan的博客 197

LeetCode Hot 100 链表专题 三· 3 题(Java)

收录题目:2. 两数相加、19. 删除链表的倒数第 N 个结点、24. 两两交换链表中的节点。 统一结构:① 题目分析与解题思路 → ② 常见解法(附代码)及讲解 → ③ 知识点总结。 贯穿三题的两条主线:虚拟头结点 dummy(统一处理头结点被修改的场景)与 指针修改顺序(避免断链、丢引用)。

2401_88612756的博客 481

LeetCode Hot 100 二叉树专题(二)3 题(Java)

本篇文章共 3 题:543. 二叉树的直径、102. 二叉树的层序遍历、108. 将有序数组转换为二叉搜索树。 每道题都统一按「① 题目分析 & 解题思路 → ② 常见解法(附代码)及讲解 → ③ 知识点总结」的顺序组织;代码使用 Java 编写,节点定义沿用 LeetCode 默认的 TreeNode。

2401_88612756的博客 351
上一篇: C++后端开发方向套卷选择题汇总(一)
下一篇: leetcode 54 59螺旋矩阵
study_&
博客等级 码龄8年 128粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值