算法-Python实现
acarsar
在代码的海洋里摸鱼
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode算法:长度为 3 的递增子序列-Python
1.题目描述:给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列。示例 1:输入: [1,2,3,4,5]输出: true示例 2:输入: [5,4,3,2,1]输出: false2.思路: 先设置两个最大的数值n1,n2,遍历数组,将每个数与n1,n2比较;先与n1比,如果比n1小,就将其设置为n1;比n1大的话就再与n2比,小于n2则将该元素设为n2,大于n2...原创 2019-02-23 00:53:14 · 1432 阅读 · 0 评论 -
leetcode字母异位词分组-Python3
题目描述:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”],输出:[[“ate”,“eat”,“tea”],[“nat”,“tan”],[“bat”]]思路:利用哈希表-哈希表的操作效率很高,在遍历列表时,先将排序后的字符串作为键,然后检查改建是...原创 2019-02-20 23:55:58 · 296 阅读 · 0 评论 -
leetcode python3算法-二叉树的锯齿形层次遍历
1.题目描述给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7],2.思路按层次遍历依次从左到右遍历每个根节点的左右节点,至于其中偶数层的逆序,借鉴其他博客的方法,用一个随层数奇偶变化的 数字1和-1来做标记。在返回子列表时,先对标记做判断,如果为-1...原创 2019-02-26 02:21:40 · 228 阅读 · 0 评论 -
leetcode python3算法-根据一棵树的前序遍历与中序遍历构造二叉树。
1.题目描述注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:2.思路二叉树的前序遍历:规则是若二叉树为空,则空操作返回,否则先访问根结点,然后前序遍历左子树,再前序遍历右子树遍历的顺序为:ABDGH-CEIF二叉树的中序遍历:规则是若树为空,则...原创 2019-02-26 02:01:19 · 998 阅读 · 0 评论 -
动态规划算法
动态规划算法使用条件:在问题可分解为独立且离散的子问题时可采用动态规划来解决。通用小贴士:每种动态规划都涉及网格。单元格中的值就是你要优化的值。每个人单元格都是一个子问题,因此你应考虑如何将问题分成子问题。有助于找出网格的坐标轴。举例请绘制并填充用来计算choose和choice最长公共字串的网格回答以下问题:单元格中的值是什么-通常是你要优化的值,这里是两个...原创 2018-12-04 16:34:01 · 205 阅读 · 0 评论 -
利用Python创建二叉树。
记录下用Python如何创建一个二叉树1.定义一个节点类,为每一个节点都赋予左右孩子的属性,然后后续才能往下添加节点class Node(object): def __init__(self, number): self.number = number self.left = None self.right = None2.建立二叉树...原创 2019-02-24 03:10:22 · 8311 阅读 · 3 评论 -
leetcode-python3算法-岛屿个数
1.题目描述给定一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。示例 1:输入:11110110101100000000输出: 1示例 2:输入:11000110000010000011输出: 32.思路深度优先遍历,遍历矩阵中的每一个元...原创 2019-03-01 23:51:06 · 979 阅读 · 0 评论 -
leetcode-python3算法-二叉搜索树中第K小的元素
1.题目描述给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。示例 1:输入: root = [3,1,4,null,2], k = 13/ 1 42输出: 1示例 2:输入: root = [5,3,6,2,4,null,null,1], k = 35/...原创 2019-03-01 00:49:59 · 639 阅读 · 0 评论 -
leetcode-python3算法-填充每个节点的下一个右侧节点指针
**1.题目描述:**填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。示例:解释:给定二叉树如图 A 所示,你的函数应该填充它的每个 next 指针,以指向其下一个右侧节点,如图 B 所示。2.思路:看到图首先想到就是利用层次遍历,从左到右依次遍历每个节...原创 2019-02-28 23:33:49 · 490 阅读 · 0 评论 -
leetcode python3 算法——矩阵置零
题目描述:给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。示例 1:输入:[[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2:输入:[[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,...原创 2019-02-19 09:37:45 · 319 阅读 · 0 评论 -
leetcode - python算法-全部子集
1.题目描述给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]2.思路假如初始输入列表为[1],那么全部子集为subset1 = [[], [1]],当输入[1, 2],比之前多...原创 2019-03-04 01:53:14 · 708 阅读 · 0 评论
分享