
Leetcode
dragonfly91
这个作者很懒,什么都没留下…
展开
-
Leetcode 221. Maximal Square Python3
题目描述:Given a 2D binary matrix filled with 0's and 1's, find the largest square containing only 1's and return its area.Example:Input:1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0Output: 4动态规划方法...原创 2020-02-26 23:03:35 · 168 阅读 · 0 评论 -
Leetcode 31. Next Permutation Python3
算法推导如何得到这样的排列顺序?这是本文的重点。我们可以这样来分析:我们希望下一个数比当前数大,这样才满足“下一个排列”的定义。因此只需要将后面的大数与前面的小数交换,就能得到一个更大的数。比如 123456,将 5 和 6 交换就能得到一个更大的数 123465。我们还希望下一个数增加的幅度尽可能的小,这样才满足“下一个排列与当前排列紧邻“的要求。为了满足这个要求,我们需要:在尽可能靠...原创 2020-02-21 23:34:04 · 187 阅读 · 0 评论 -
Leetcode 343. Integer Break 整数拆分(剪绳子)Python3 & C++
此题使用动态规划的思路来做 。将数字i分割为i-j和j,一种备选是计算j*(i-j),另一种备选是继续分割i-j,由于i-j肯定比i小,所以可以根据动态规划的思想由前面的值得到。问题的起点,i=1的时候最大就为1。Python3代码:class Solution: def max3(self,a,b,c): return max(max(a,b),c)...原创 2020-02-12 17:18:28 · 205 阅读 · 0 评论 -
牛客网 剑指offer 数组中的逆序对 Python3
思路参考了另一篇博客,此处只是将原作者的代码翻译为Python版本:https://blog.youkuaiyun.com/lym940928/article/details/91354887# -*- coding:utf-8 -*-class Solution: def InversePairs(self, data): length=len(data) ...原创 2020-02-07 16:49:19 · 182 阅读 · 0 评论 -
Leetcode 112. Path Sum 二叉树中和为某一值的路径 Python3
方法 :递归最直接的方法就是利用递归,遍历整棵树:如果当前节点不是叶子,对它的所有孩子节点,递归调用 hasPathSum 函数,其中 sum 值减去当前节点的权值;如果当前节点是叶子,检查 sum 值是否为 0,也就是是否找到了给定的目标和。# Definition for a binary tree node.# class TreeNode:# def __init...原创 2020-02-04 21:56:05 · 201 阅读 · 0 评论 -
牛客网 剑指offer 二叉搜索树的后序遍历序列 Python3
题目要求:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。采用分治法的思想,找到根结点、左子树的序列、右子树的序列,分别判断左右子序列是否为二叉树的后序序列。由题意可得:1. 后序遍历序列的最后一个元素为二叉树的根节点;2. 二叉搜索树左子树上所有的结点均小于根结点、右子树所有的结点均大于根...原创 2020-02-04 17:49:21 · 187 阅读 · 0 评论 -
Leetcode 19. Remove Nth Node From End of List 链表中倒数第n个结点Python3版本
方法:两次遍历算法思路我们注意到这个问题可以容易地简化成另一个问题:删除从列表开头数起的第 (L - n + 1)个结点,其中 L是列表的长度。只要我们找到列表的长度 L,这个问题就很容易解决。算法首先我们将添加一个哑结点作为辅助,该结点位于列表头部。哑结点用来简化某些极端情况,例如列表中只含有一个结点,或需要删除列表的头部。在第一次遍历中,我们找出列表的长度 L。然后设置一个指向哑...原创 2020-02-03 17:25:29 · 169 阅读 · 0 评论 -
Leetcode 232. Implement Queue using Stacks用两个栈实现队列
使用最经典的两个栈的方式实现队列,下面是python3的实现方式class MyQueue: def __init__(self): """ Initialize your data structure here. """ self.stack1 = [] self.stack2 = [] d...原创 2020-02-02 19:09:17 · 134 阅读 · 0 评论 -
leetcode题解 426. Convert Binary Search Tree to Sorted Doubly Linked List
方法一:递归算法标准的中序遍历采用 左 -> 根 -> 右 的顺序,其中 左 和 右 的部分调用递归。本题的处理在于将前一个结点与当前结点链接,因此,必须跟踪最后一个结点,该结点在新的双向链表中是当前最大的。另外一个细节:我们也需要保留第一个,也就是最小的结点,以完成闭环。下面是具体算法:将 first 和 last 结点 初始化为 null。调用标准中序遍历...原创 2020-01-26 21:28:51 · 361 阅读 · 0 评论 -
206. Reverse Linked List Python迭代实现
题目要求:Reverse a singly linked list.Example:Input: 1->2->3->4->5->NULLOutput: 5->4->3->2->1->NULLFollow up:A linked list can be reversed either iteratively or ...原创 2019-05-05 23:04:50 · 274 阅读 · 0 评论