leetcode
文章平均质量分 50
大别山伧父
这个作者很懒,什么都没留下…
展开
-
leetcode刷题系列----模式2(Datastructure 链表)- 725(M):Split Linked List in Parts 分割链表
leetcode刷题系列----模式2(Datastructure 链表)- 725(M):Split Linked List in Parts 分割链表Tips更多题解请见本系列目录本题套熟练掌握链表的定义,牢记尾结点必定要指向为空。在敲代码时,大脑思考指针的前进方向。此处均匀分布节点个数,有个模运算,余数应当小于划分数,然后前面小于等于余数的每个划分额外多分得一个节点。part_szie = q +(1 if i<r else 0)Python# Definition for s原创 2021-12-27 15:45:20 · 703 阅读 · 0 评论 -
Leetcode刷题系列----模式2(Datastructure 链表)- 24(M):Swap Nodes in Pairs 两两交换链表中的节点
leetcode刷题系列----模式2(Datastructure 链表)- 24(M):Swap Nodes in Pairs 两两交换链表中的节点Tips更多题解请见本系列目录使用迭代法解决。其实LeetCode定义的链表使用的头结点和首节点相同,本题的解决思路是设置一个首节点(初始值为空的链表的第一个节点,它的下一个节点为头结点),这样原来的head节点可以丢弃,作为temp节点使用。其他要注意的地方就是在链表断开和重连新节点时,保证有效的next以及迭代时的边界条件设置。Python原创 2021-12-23 21:46:48 · 1054 阅读 · 0 评论 -
leetcode刷题系列----模式2(Datastructure 链表)- 19:Remove Nth Node from End of List (Medium) 删除链表中的倒数第N个节点
leetcode刷题系列----模式2(Datastructure 链表)- 19:Remove Nth Node from End of List (Medium) 删除链表中的倒数第N个节点Tips更多题解请见本系列目录使用双指针(快慢)解决。此时定义一个新的链表,它头指针为0,指向的头结点为head,low指针在次链表上更新到下一节点。Python# Definition for singly-linked list.# class ListNode:# def __ini原创 2021-12-20 21:32:59 · 1486 阅读 · 0 评论 -
leetcode刷题系列----模式2(Datastructure 链表)- 83:Remove Duplicates from Sorted List 删除排序链表中的重复元素
leetcode刷题系列----模式2(Datastructure 链表)- 83:Remove Duplicates from Sorted List 删除排序链表中的重复元素Tips更多题解请见本系列目录使用双指针解决。链表类问题注意指针要随着迭代更新到next。Python# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):#原创 2021-12-20 20:26:06 · 915 阅读 · 0 评论 -
leetcode刷题系列----模式2(Datastructure 链表)- 21:Merge Two Sorted Lists 合并两个有序链表
leetcode刷题系列----模式2(Datastructure 链表)- 21:Merge Two Sorted Lists 合并两个有序链表Tips更多题解请见本系列目录使用迭代法解决。链表类问题注意指针要随着迭代更新到next。Python# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val原创 2021-12-19 20:50:37 · 631 阅读 · 0 评论 -
leetcode刷题系列----模式2(Datastructure 链表)- 206:Reverse Linked List 反转链表
leetcode刷题系列----模式2(Datastructure 链表)- 206:Reverse Linked List 反转链表Tips更多题解请见本系列目录此题使用迭代法可以解决。首先定义current和previous两个指针。使用head保存current的next节点。断开current和current的next之间的链。建立current和current的next之间新链接,current的next改为指向previous。previous被释放,将current变为pre原创 2021-12-19 17:16:51 · 781 阅读 · 0 评论 -
leetcode刷题系列----模式2(Datastructure 链表)- 160:Intersection of Two Linked List 相交链表
leetcode刷题系列----模式2(Datastructure 链表)- 160:Intersection of Two Linked List 相交链表Tips更多题解请见本系列目录此链表问题可以使用双指针解决,注意算法的复杂度为O(m+n),意味着2*(m+n)次遍历也属于该时间复杂度,不可狭隘的认为仅仅遍历m+n次链表节点。双指针确实是一个很大的算法思想类。Python# Definition for singly-linked list.# class ListNode:#原创 2021-12-18 17:03:15 · 882 阅读 · 0 评论 -
LeetCode 经典指南
前言本文从 Leetcode 中精选大概 200 左右的题目,去除了某些繁杂但是没有多少算法思想的题目,同时保留了面试中经常被问到的经典题目。加粗的为本博客已经覆盖的题解,每天1-2道,包含4中编程语言的题解,帮助大家一起刷题。算法思想双指针 Two Points67:Two Sum 两数之和633:Sum of Square Numbers平方数之和345:Reverse Vowels of a string反转字符串中的元音字母680:Valid Palindrome 验证回文字符串8原创 2021-12-17 15:52:49 · 3553 阅读 · 0 评论 -
leetcode刷题系列----模式1(Two Points 双指针)- 141:Longest Word in Dictionary through Deleting (Medium) 通过删除字母
leetcode刷题系列----模式1(Two Points 双指针)- 141:Longest Word in Dictionary through Deleting (Medium) 通过删除字母匹配字典里最长单词TipsJava和C#核心代码完全一样, length() and Length, compareTo() and CompareTo(), for and foreach这题比较简单,遍历字符串数组后使用双指针比较目标字符s与字符串数组内的元素。在类内额外定义一个双指针的字符串是否原创 2021-12-17 15:38:19 · 3913 阅读 · 0 评论 -
leetcode刷题系列----模式1(Two Points 双指针)- 141:Linked List Cycle环形链表
TipsJava和C#核心代码完全一样。这题比较简单,类似于时针和分针何时相遇。注意算法与数据结构的定义高度绑定,一定参照如何定义链表来思考解决此类问题的算法。Python# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def hasC原创 2021-12-15 20:38:37 · 1154 阅读 · 0 评论 -
leetcode刷题系列----模式1(Two Points 双指针)- 88:Merge Sorted Array 合并两个有序数组
深度学习训练占用GPU和CPU之余可以干什么?打开Chrome和Edge浏览器,一个用来刷力扣,一个用来写CSDN。关闭PDF阅读器,暂时不读paper。关闭pycharm,使用控制台训练。使用任务管理器看完内存占用后,一切正常,关闭任务管理器。尽可能的少打开网页,从平时使用电脑时考虑时间和空间复杂度。以上情况尽可能的减少系统进程和线程。Tips在两个数组的尾部有数的部分来设置指针主要难点在于如何设置边界条件四种语言大同小异Pythonclass Solution:原创 2021-12-14 22:09:08 · 971 阅读 · 0 评论 -
leetcode刷题系列----模式1(Two Points 双指针)- 680:Valid Palindrome 验证回文字符串
深度学习训练占用GPU和CPU之余可以干什么?打开Chrome和Edge浏览器,一个用来刷力扣,一个用来写CSDN。关闭PDF阅读器,暂时不读paper。关闭pycharm,使用控制台训练。使用任务管理器看完内存占用后,一切正常,关闭任务管理器。尽可能的少打开网页,从平时使用电脑时考虑时间和空间复杂度。以上情况尽可能的减少系统进程和线程。Tips贪心算法双指针实现。Pythonclass Solution: def validPalindrome(self, s: str原创 2021-12-14 19:34:27 · 569 阅读 · 0 评论 -
leetcode刷题系列----模式1(Two Points 双指针)- 345:Reverse Vowels of a string反转字符串中的元音字母
Tips:定义两个指针,left和rightjava 和 c# 十分类似,感觉语法在互相降重,搞的晕头转向,一会大写一会小写,一会有括号一会没括号python还是很高效与官方思路求同存异,似乎两个逻辑存在一种运算关系四种方法的代码如下:pythonclass Solution: def reverseVowels(self, s: str) -> str: def isVowel(character: str) -> bool: r原创 2021-12-13 20:38:16 · 4306 阅读 · 0 评论 -
leetcode刷题系列----模式1(Two Points 双指针)- 633:Sum of Square Numbers平方数之和
class Solution: def judgeSquareSum(self, c: int) -> bool: low, high = int(0), int(c**0.5) while low<=high: sumsqure = low**2 + high**2 if sumsqure<c: low+=1 elif sumsqure>c: high-=1原创 2021-12-12 18:10:42 · 787 阅读 · 0 评论 -
leetcode刷题系列----模式1(Two Points 双指针)- 167:Two Sum 两数之和
keywords: 杨氏矩阵,结果搜索域为一个有序的上三角矩阵。每次减少对称矩阵的一行或者一列的数。class Solution: def twoSum(self, numbers: List[int], target: int) -> List[int]: left, right = 0, len(numbers)-1 while left < right: twosum = numbers[left] + numbers[ri原创 2021-12-12 17:57:17 · 952 阅读 · 0 评论