Python刷题之路
每天一道编程题,记录三年研究生生活的进步点滴
小王曾是少年
通信工程本硕 for NJU ;
《Intelligent Passive Eavesdropping in Massive MIMO-OFDM Systems via Reinforcement Learning》IEEE WCL 作者;
申请国家发明专利2项;
淘天集团后端开发;
有事尽量私信
展开
-
LeetCode 17*/46*. 电话号码的字母组合/全排列(回溯法)(Python)
给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].思路:暴力破解,回溯法利用树形结构如图将digits数组中每一位数字对应的字母依次取...原创 2019-12-21 14:34:47 · 499 阅读 · 0 评论 -
LeetCode 437*. 路径总和(Python)
给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。思路:主要的点在于不确定当前的节点是否存在于一条路径上,该路径的和为sum,所以需要分情况讨论① 假设当...原创 2019-12-20 15:58:44 · 408 阅读 · 1 评论 -
LeetCode 347*. 前 K 个高频元素(Python)
给定一个非空的整数数组,返回其中出现频率前k高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]说明:你可以假设给定的k总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于 O(n log n) ,n是...原创 2019-12-14 16:35:42 · 691 阅读 · 1 评论 -
LeetCode 279*. 完全平方数(Python)
给定正整数n,找到若干个完全平方数(比如1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例1:输入: n = 12输出: 3解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9.思路:构建一个图,再进行广度优先遍历(BFS),注意三个要点1....原创 2019-12-13 18:04:03 · 640 阅读 · 0 评论 -
LeetCode 102*. 二叉树的层序遍历(Python)
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 /\ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]思路:首先观察返回值格式为一个二维数组,第 i 行表示二叉...原创 2019-12-12 14:43:08 · 436 阅读 · 0 评论 -
LeetCode 94、144、145*. 二叉树的遍历(Python)
给定一个二叉树,返回它的前序遍历。示例:输入: [1,null,2,3] 1 \ 2 /3输出: [1,2,3]思路:递归很简单,这里用迭代法,使用栈模拟计算机中的指令执行情况。1. 先创建一个Command类,存储一个字符串和一个树节点,其中字符串表示什么命令,“go”代表跳转到某个节点,“print”表示打印输出;2. 由...原创 2019-12-11 14:31:02 · 194 阅读 · 0 评论 -
LeetCode 75*. 颜色分类(Python)
给定一个包含红色、白色和蓝色,一共n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]仅使用常数空间的一趟扫描算法思路:参考三路快...原创 2019-12-03 19:36:47 · 236 阅读 · 0 评论 -
LeetCode 447*. 回旋镖的数量(Python)
给定平面上n 对不同的点,“回旋镖” 是由点表示的元组(i, j, k),其中i和j之间的距离和i和k之间的距离相等(需要考虑元组的顺序)。找到所有回旋镖的数量。你可以假设n 最大为 500,所有点的坐标在闭区间 [-10000, 10000] 中。示例:输入:[[0,0],[1,0],[2,0]]输出:2解释:两个回旋镖为 [[1...原创 2019-11-22 18:24:29 · 313 阅读 · 0 评论 -
LeetCode 34*. 在排序数组中查找元素的第一个和最后一个位置(Python)
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是O(log n) 级别。如果数组中不存在目标值,返回[-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例2:输入: nums = [5,7,7,8,8,...原创 2019-10-28 18:59:47 · 264 阅读 · 0 评论 -
LeetCode 516*. 最长回文子序列(Python)
给定一个字符串s,找到其中最长的回文子序列。可以假设s的最大长度为1000。示例 1:输入:"bbbab"输出:4一个可能的最长回文子序列为 "bbbb"。示例 2:输入:"cbbd"输出:2一个可能的最长回文子序列为 "bb"。思路:仍然是动态规划。将字符串横竖列开,变成一个二维数组f,f[ i ][ j ]表示s的第i个字符...原创 2019-10-26 21:47:53 · 989 阅读 · 0 评论 -
LeetCode 72*. 编辑距离(Python)
给定两个单词word1 和word2,计算出将word1转换成word2 所使用的最少操作数。你可以对一个单词进行如下三种操作:插入一个字符 删除一个字符 替换一个字符示例1:输入: word1 = "horse", word2 = "ros"输出: 3解释:horse -> rorse (将 'h' 替换为 'r')rorse -> r...原创 2019-10-25 20:04:57 · 242 阅读 · 0 评论 -
LeetCode 3*. 无重复字符的最长子串(Python)
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最...原创 2019-10-23 19:53:07 · 191 阅读 · 0 评论