自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 Leetcode 141 & 142 环形链表Ⅰ、Ⅱ【链表】

Leetcode 141 1.思路 1)设置快慢指针,如果可以重合,则证明有环 2.代码 # Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = None class Solut...

2019-01-31 13:11:48 137

原创 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 225

原创 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 127

原创 Leetcode 86 分隔链表【链表】

1.代码 # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def partition(self, head, x): ""...

2019-01-28 10:11:14 147

原创 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 145

原创 Leetcode 61 旋转链表【链表】

本题是稍有难度的链表题。 1.思路 1)计算链表长度 2)计算新链表起始节点 解题步骤 1)边界检查——k=0或者空链表 2)辅助节点p 3)计算链表长度 4)链表成环 5)计算step,确定新的头节点 6)辅助头节点指向新的头节点 2.代码 # Definition for singly-linked list. # class ListNode: # def __init__(self...

2019-01-26 11:11:31 187

原创 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 104

原创 Leetcode 21 合并两个有序链表【链表】

本题是比较基础的链表题。链表题的典型套路。 1.思路 1)创建头节点,并用res记录其位置 2)都不为None时,比较并且插入,注意每次插入后的l1orl2以及head的后移 3)当有出现None时,插入另一个的剩余部分 4)返回res.next 2.代码 # Definition for singly-linked list. # class ListNode: # def __ini...

2019-01-25 16:21:22 76

原创 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 77

原创 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

原创 Leetcode 15 三数之和【数组】

1.思路 1)有序化 2)固定住第一个数,利用头尾指针,依次向中间靠拢搜寻三数之和为0 3)无重复 具体思路: 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 81

原创 Leetcode 64 最小路径和【动态规划】

本题属于典型的动态规划,以下是解题思路以及Python代码。

2019-01-21 12:56:04 217

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除