
LeetCode
Spratumn
行动派
展开
-
#504.七进制数
题目描述:给定一个整数,将其转化为7进制,并以字符串形式输出。示例 1:输入: 100输出: “202”注意: 输入范围是 [-1e7, 1e7] 。知识点:N进制就是“逢N进1,借1当N。”10进制转换为N进制,“除N取余”取倒序思路和代码:class Solution: def convertToBase7(self, num: int) -> str: ...原创 2019-09-11 10:46:58 · 717 阅读 · 0 评论 -
#230.二叉搜索树中第k个最小的元素
题目描述:给定一个二叉搜索树,编写一个函数kthSmallest来查找其中第k个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。知识点:二叉树中序遍历思路和代码:使用二叉树中序遍历的方法,找到第k小的数直接退出# Definition for a binary tree node.# class TreeNode:# def __ini...原创 2019-09-12 14:19:50 · 293 阅读 · 0 评论 -
#208.实现一个前缀树
文章目录进制#504.七进制数二分法#69. x的平方根分治#241.为运算表达式设计优先级链表#160.相交链表哈希表#1.两数之和字符串#3.无重复字符的最长子串#242.有效的字母异位词#409.最长回文串栈和队列#232.用栈实现队列双指针#167.两数之和Ⅱ-输入有序数组排序#215.数组中的第k个最大元素#347.前K个高频元素数组和矩阵#462.最少移动次数使数组元素相等Ⅱ#169....原创 2019-08-31 10:16:01 · 175 阅读 · 0 评论 -
#64.最小路径和
题目描述:给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。知识点:动态规划:多阶段决策最优解模型,每阶段都对应一组状态状态转移方程构造方式:递归+备忘录(反向递归)迭代递推(正向迭代)思路和代码:状态转移方式:采用正向迭代def minPathSum(grid): """...原创 2019-09-20 19:42:50 · 141 阅读 · 0 评论 -
#322. 零钱兑换
题目描述:给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。说明:你可以认为每种硬币的数量是无限的。知识点:动态规划:多阶段决策最优解模型,每阶段都对应一组状态状态转移方程构造方式:递归+备忘录(反向递归)迭代递推(正向迭代)思路和代码:状态转移方式:采用反向...原创 2019-09-21 16:04:14 · 140 阅读 · 0 评论 -
#92.反转链表Ⅱ
题目描述:反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤ m ≤ n ≤ 链表长度。知识点:在扫描链表的过程中记录m与n两个节点位置思路和代码:class ListNode: def __init__(self, x): self.val = x self.next = Noneclass Solution: d...原创 2019-09-24 09:41:29 · 169 阅读 · 0 评论 -
#203. 移除链表元素
题目描述:删除链表中等于给定值 val 的所有节点。知识点:链表操作检查边界条件:链表为空链表只包含一个节点链表只包含两个节点处理头节点和尾节点是否有问题思路和代码:# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x...原创 2019-09-24 13:13:35 · 136 阅读 · 0 评论 -
#102 二叉树的层次遍历
题目描述:给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7],返回其层次遍历结果:[[3],[9,20],[15,7]]知识点:思路和代码:# Definition for a binary tree node.# class TreeNode:# def __init__(s...原创 2019-09-12 14:18:34 · 181 阅读 · 0 评论 -
#144.二叉树的前序遍历
题目描述:给定一个二叉树,返回它的 前序 遍历。知识点:递归法与迭代法思路和代码:# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right...原创 2019-09-12 11:31:07 · 141 阅读 · 0 评论 -
#69. x的平方根
题目描述:实现int sqrt(int x)函数。计算并返回x的平方根,其中x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842…,由于返回类型是整数,小数部分将被舍去。知识点:二分法:mid=(left+right)/2思路和代码:结果返回的是近...原创 2019-09-11 10:49:42 · 147 阅读 · 0 评论 -
#241.为运算表达式设计优先级
题目描述:给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果。你需要给出所有可能的组合的结果。有效的运算符号包含 +,-以及*。示例1:输入: “2-1-1”输出: [0, 2]解释:((2-1)-1) = 0(2-(1-1)) = 2知识点:分治,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问...原创 2019-09-11 10:51:41 · 217 阅读 · 0 评论 -
#160.相交链表
题目描述:编写一个程序,找到两个单链表相交的起始节点。注意:如果两个链表没有交点,返回 null.在返回结果后,两个链表仍须保持原有的结构。可假定整个链表结构中没有循环。程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存知识点:思路和代码:方法一: 暴力法对链表A中的每一个结点 a_i,遍历整个链表 B 并检查链表 B 中是否存在结点和 a_i相同。复杂度分析时...原创 2019-09-11 10:53:53 · 132 阅读 · 0 评论 -
#1.两数之和
题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]知识点:...原创 2019-09-11 10:54:56 · 133 阅读 · 0 评论 -
#3.无重复字符的最长子串
题目描述:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。知识点:滑动窗口法列表作为窗口队列作为窗口思路和代码:1列表作为窗口def lengthOfLongestSubstring(s): if not s: ret...原创 2019-09-11 10:55:46 · 123 阅读 · 0 评论 -
#242.有效的字母异位词
题目描述:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false说明:你可以假设字符串只包含小写字母。如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?知识...原创 2019-09-11 10:56:33 · 138 阅读 · 0 评论 -
#409.最长回文串
题目描述:给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如"Aa"不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例 1:输入:“abccccdd”输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。知识点:思路和代码:def longestPalindrome...原创 2019-09-11 10:57:08 · 149 阅读 · 0 评论 -
#167.两数之和Ⅱ-输入有序数组
题目描述:给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -&...原创 2019-09-11 10:59:32 · 198 阅读 · 0 评论 -
#110.平衡二叉树
题目描述:给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1知识点:思路和代码:def tree_depth(root): if not root: return 0 else: return max(tree_depth(root.left),tree...原创 2019-09-11 11:00:15 · 149 阅读 · 0 评论