数据结构
Cris_Lee卡卡卡
https://github.com/lrs1353281004
展开
-
leetcode题解记录-622设计循环队列(python3)
题目设计循环队列题目链接官方题解关键词队列,数组代码记录class MyCircularQueue: def __init__(self, k: int): """ Initialize your data structure here. Set the size of the queue to be k. """ self.queue=[None for i in range(k)] self.head原创 2020-10-21 18:51:57 · 221 阅读 · 1 评论 -
leetcode题解记录-138复制带随机指针的链表(python3)
题目复制带随机指针的链表题目链接官方题解关键词链表代码记录"""# Definition for a Node.class Node: def __init__(self, x: int, next: 'Node' = None, random: 'Node' = None): self.val = int(x) self.next = next self.random = random"""class Solution:原创 2020-10-20 11:21:44 · 139 阅读 · 0 评论 -
leetcode题解记录-430扁平化多级双向链表(python3)
题目比较含退格的字符串题目链接官方题解关键词字符串,双指针代码记录方法一 重构字符串时间复杂度O(N+M),空间复杂度O(N+M)class Solution: def backspaceCompare(self, S: str, T: str) -> bool: def transfer_str(s): res=[] for i in range(len(s)): cur=s[i] if cur !='#':原创 2020-10-19 14:26:43 · 148 阅读 · 0 评论 -
leetcode题解记录-21合并两个有序链表(python3)
题目合并两个有序链表题目链接官方题解关键词链表代码记录# Definition for singly-linked list.class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = nextclass Solution: def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode: import原创 2020-10-16 19:29:00 · 190 阅读 · 0 评论 -
leetcode题解记录-707设计链表(python3)
题目设计链表题目链接官方题解关键词单链表,双链表代码记录方法一 单链表class ListNode: def __init__(self,val): self.val=val self.next=Noneclass MyLinkedList: def __init__(self): """ Initialize your data structure here. """ sel原创 2020-10-16 17:21:08 · 317 阅读 · 0 评论 -
leetcode题解记录-977有序数组的平方(python3)
题目有序数组的平方题目链接官方题解关键词单调栈代码记录此处记录一下单调栈的写法,与官方题解方法不同。class Solution: def sortedSquares(self, A: List[int]) -> List[int]: stack=[] res=[] for n in A: if not stack: stack.append(n) else: if abs(n)<=abs(原创 2020-10-16 14:03:58 · 148 阅读 · 0 评论 -
leetcode题解记录-234回文链表(python3)
题目回文链表题目链接官方题解关键词链表代码记录此解法时间复杂度O(n),空间复杂度O(1)。# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def isPalindrome(self, head: ListNode) -> bo原创 2020-10-15 20:30:16 · 185 阅读 · 0 评论 -
leetcode题解记录-328奇偶链表(python3)
题目奇偶链表题目链接官方题解关键词链表代码记录# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def oddEvenList(self, head: ListNode) -> ListNode:原创 2020-10-15 17:07:23 · 115 阅读 · 0 评论 -
leetcode题解记录-116填充每个节点的下一个右侧节点指针(python3)
题目填充每个节点的下一个右侧节点指针题目链接官方题解关键词完美二叉树,层次遍历代码记录方法一 层次遍历"""# Definition for a Node.class Node: def __init__(self, val: int = 0, left: 'Node' = None, right: 'Node' = None, next: 'Node' = None): self.val = val self.left = left原创 2020-10-15 15:49:41 · 172 阅读 · 0 评论 -
Leetcode-695.最大岛屿面积(DFS 与 BFS 解法,python3)
题目描述给定一个包含了一些 0 和 1 的非空二维数组 grid 。一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为 0 。)来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/max-area-of-islandDFS解法思路说明(摘自leetcode)原创 2020-05-31 20:35:08 · 691 阅读 · 0 评论 -
剑指offer(二叉搜索树的第k个结点)-python2实现及解析
题目描述:给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。题目来源:牛客网代码实现(python2)# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# ...原创 2019-03-03 11:57:36 · 558 阅读 · 0 评论 -
剑指offer-数组中的逆序对计算(python实现)
剑指offer-数组中的逆序对计算(牛客网题目,python实现)问题描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 (来源-牛客网)解题思路:类似归并排序(1)递归拆分数组,直至无法拆分 (2)按从小到大顺...原创 2018-07-15 21:48:16 · 3660 阅读 · 0 评论 -
连通子图与连通子图直径的求解-python实现
背景描述连通子图提供一个文本,文本中每行记录了两个字母,代表一个连接。这个文本记录了一个无向图。 举例: A,B 代表A,B之间有连接。 每一个有连接点的子集组成了一个连通子图。 比如下面这个文本中: A,B B,C C,A D,E C,F F,G 有两个连通子图[‘A’, ‘B’, ‘C’, ‘F’, ‘G’] 和 [‘D’, ‘E’]连通子图直径连通...原创 2018-04-23 13:11:17 · 5423 阅读 · 3 评论 -
二叉树的三种遍历方式
二叉树的三种遍历方式以图中树为例,前序遍历(根左右):ABDHECFG中序遍历(左根右):HDBEAFCG后序遍历(左右根):HDEBFGCA原创 2018-03-06 17:19:36 · 291 阅读 · 0 评论 -
剑指Offer-面试题22 栈的压入、弹出序列(python实现)
剑指Offer-面试题22 栈的压入、弹出序列(python 实现)题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)解决方案...原创 2018-03-08 16:28:01 · 735 阅读 · 0 评论