![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode刷题
Allen_ayt
HVAC CFD 数据科学
展开
-
Leetcode 19 删除链表的倒数第N个节点【链表】
本题是比较基础的链表题。1.思路1)单次遍历2)双指针Note:两次遍历的方法只需要一个指针,空间换时间,因此单次遍历不可避免使用双指针首先,双指针指向头指针,rear向后移动n次。如果此时指针已经指向None【边界情况】,意思就是第一个元素是需要被删除的,返回head.next如果此时指针不指向None,则head和rear都向后移动,直到rear.next是None,此时删除he...原创 2019-01-24 12:08:43 · 73 阅读 · 0 评论 -
Leetcode 92 反转链表 【链表】
本题介绍链表里的头插法。1.思路1)前进到反转开始处附近2)头插法头插法:1)3插到2前2)4插到3前3)完成2->3->4到4->3->2的反转注意防止断链,具体方法细节在代码的注释中。首先防止q前插导致下一循环断链,记录下q.next;然后插入q在头部(两步);最后初始化下一循环p,q。2.代码class Solution: def r...原创 2019-01-29 17:21:50 · 125 阅读 · 0 评论 -
Leetcode 2 两数相加【链表】
本题是比较基础的链表题。1.思路1)构造头部节点2)记录表头位置3)边相加,边移位(构造下一个节点,指向下一个节点)Note:最后return的时候要注意不能把头节点也返回(为了省时间,就没有把多余的节点删除)2.代码# Definition for singly-linked list.# class ListNode:# def __init__(self, x):...原创 2019-01-23 11:32:41 · 195 阅读 · 0 评论 -
Leetcode 86 分隔链表【链表】
1.代码# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def partition(self, head, x): ""...原创 2019-01-28 10:11:14 · 143 阅读 · 0 评论 -
Leetcode 15 三数之和【数组】
1.思路1)有序化2)固定住第一个数,利用头尾指针,依次向中间靠拢搜寻三数之和为03)无重复具体思路:Step1 首先固定住一个i,(为了避免重复)当i和i-1相同时,continue(即i++)进行下一个外循环Step2 每个外循环内再指定i+1头指针, L-1尾指针,当j<k时候,持续执行内循环Step3 给出每个i对应的target,如果符合就append,并且j...原创 2019-01-22 15:49:12 · 77 阅读 · 0 评论 -
Leetcode 83 删除排序链表中的重复元素【链表】
本题是简单的链表题。1.思路1)单指针,下一个和上一个相同,p.next指向p.next.next,否则p指针后移这里不用哑节点,直接开始就判断2.代码# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# se...原创 2019-01-27 11:13:18 · 142 阅读 · 0 评论 -
Leetcode 141 & 142 环形链表Ⅰ、Ⅱ【链表】
Leetcode 1411.思路1)设置快慢指针,如果可以重合,则证明有环2.代码# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self.next = Noneclass Solut...原创 2019-01-31 13:11:48 · 133 阅读 · 0 评论 -
Leetcode 61 旋转链表【链表】
本题是稍有难度的链表题。1.思路1)计算链表长度2)计算新链表起始节点解题步骤1)边界检查——k=0或者空链表2)辅助节点p3)计算链表长度4)链表成环5)计算step,确定新的头节点6)辅助头节点指向新的头节点2.代码# Definition for singly-linked list.# class ListNode:# def __init__(self...原创 2019-01-26 11:11:31 · 187 阅读 · 0 评论 -
Leetcode 64 最小路径和【动态规划】
本题属于典型的动态规划,以下是解题思路以及Python代码。原创 2019-01-21 12:56:04 · 212 阅读 · 0 评论 -
Leetcode 24 两两交换链表中的节点【链表】
本题是比较基础的链表题。链表题的典型套路。1.思路1)边界情况——只有少于2个元素2)定义p,q两个指针开始循环:3)交换改变p.next,q.next(此时p,q不变)p.next指向q,完成交换4)进行下一循环的初始化p是下一次要交换的两个节点的前一个节点q是下一次要交换的两个节点中的第一个节点2.代码# Definition for singly-linked li...原创 2019-01-25 18:31:19 · 100 阅读 · 0 评论 -
Leetcode 21 合并两个有序链表【链表】
本题是比较基础的链表题。链表题的典型套路。1.思路1)创建头节点,并用res记录其位置2)都不为None时,比较并且插入,注意每次插入后的l1orl2以及head的后移3)当有出现None时,插入另一个的剩余部分4)返回res.next2.代码# Definition for singly-linked list.# class ListNode:# def __ini...原创 2019-01-25 16:21:22 · 72 阅读 · 0 评论 -
Leetcode 55 跳跃游戏 【贪心算法】
1.思路1)maxpos为已经经过的部分的数组所能达到的最远处2)遍历,每次都更新maxpos,其为之前maxpos和i+nums[i]的最大值2.代码class Solution: def canJump(self, nums): """ :type nums: List[int] :rtype: bool """...原创 2019-01-29 21:31:01 · 224 阅读 · 0 评论