随笔分类 - PYTHON
python随笔
摘要:问题描述: 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7], 返回其自底向上的层次遍历为: 2018-09-09 15:10:44
阅读全文
摘要:问题描述: 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 返回它的最大深度 3 。 方法1: 简体: 简体2: 递归取左右子树高度的较大者 20
阅读全文
摘要:问题描述: 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 方法1:用两个列表模拟栈,初始a栈和b栈分别存储根节点的左节点和右节点,此后,a的左孩子进栈a,b的右孩子进栈
阅读全文
摘要:problem description: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2
阅读全文
摘要:问题描述: 给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3] 输出: true 示例 2: 输入: 1 1 / \ 2 2 [1,2],
阅读全文
摘要:问题描述: 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1: 示例 2: 方法1:(超时) 方法2: 同上: 方法2: 2018-07-25 13:08:38
阅读全文
摘要:问题描述: 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 1: 示例 2: 方法1:(Memory Error) 方法2:二分法 方法3:牛顿法 方法4:math 注: Python
阅读全文
摘要:问题描述: 给定两个二进制字符串,返回他们的和(用二进制表示)。 输入为非空字符串且只包含数字 1 和 0。 示例 1: 示例 2: 方法1: 方法2: 1 class Solution(object): 2 def addBinary(self, a, b): 3 """ 4 :type a: s
阅读全文
摘要:问题描述: 给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 示例 2: 方法1: 方法2: 注: 1.for i in range(始,末,步长):
阅读全文
摘要:问题描述 给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。 如果不存在最后一个单词,请返回 0 。 说明:一个单词是指由字母组成,但不包含任何空格的字符串。 示例: 方法1:逆序按索引查看是否为字母 方法2: string函数总结(转): string.capitaliz
阅读全文
摘要:问题描述: 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 时间超限: 暴力穷举 方法1:当前值的大小与前面的值之和比较,若当前值更大,则取当前值,舍弃前面的值之和 方法2:(分治法)对半分,求左边最大,右边最大,以及边界最大 ,返回最
阅读全文
摘要:问题描述: 报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下: 1 被读作 "one 1" ("一个一") , 即 11。 11 被读作 "two 1s" ("两个一"), 即 21。 21 被读作 "one 2", "one 1" ("一个二" , "一个一")
阅读全文
摘要:问题描述: 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 方法1:for 循环 class Solution(object): def searchInsert(self, nums, targ
阅读全文
摘要:问题描述: 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1: 示例 2:
阅读全文
摘要:问题描述: 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 方法1: 方法2:递归
阅读全文
摘要:问题描述: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 n
阅读全文
摘要:题目描述: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 注意空字符串可被认为是有效字符串。 方法1: 遇到左括号压入list中,遇到右括号时先判断list是否为空,是则返回false,否则弹出一个字符与其进行比较,匹配则cont
阅读全文
摘要:问题描述: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 示例 2: 说明: 所有输入只包含小写字母 a-z 。 方法1: 贪心:将第一个串和第二个串进行比较,得出的最长前缀再与剩下的进行比较。(48ms) 方法2(官方): 利用min和max
阅读全文