python
文章平均质量分 83
凌疯墨子
城市慷慨亮整夜灯, 如同少年不惧岁月长。
展开
-
二刷 leetcode(11)
88. 合并两个有序数组给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums...原创 2018-07-15 16:17:45 · 261 阅读 · 0 评论 -
python 刷 leetcode 题目(31)
2. 两数相加给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807思路:主要三种细节,进位情况,第二个是两...原创 2018-06-20 11:07:59 · 530 阅读 · 0 评论 -
python 刷 leetcode题目(39)
240. 搜索二维矩阵 II编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 1...原创 2018-06-27 10:33:51 · 660 阅读 · 0 评论 -
python 刷leetcode题目(38)
33. 搜索旋转排序数组假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2]...原创 2018-06-26 14:36:10 · 404 阅读 · 0 评论 -
二刷 leetcode(5)
344. 反转字符串请编写一个函数,其功能是将输入的字符串反转过来。示例:输入:s = "hello"返回:"olleh"代码:class Solution: def reverseString(self, s): """ :type s: str :rtype: str """ #### the first...原创 2018-07-08 18:52:58 · 255 阅读 · 0 评论 -
python 刷 leetcode 题目(30)
最长回文子串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。示例 1:输入: "babad"输出: "bab"注意: "aba"也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"参考博客:最长回文子串class Solution(object): def longestPalindrome(self, s): "&a原创 2018-06-19 14:00:21 · 727 阅读 · 0 评论 -
python 刷leetcode题目(37)
162. 寻找峰值峰值元素是指其值大于左右相邻值的元素。给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。示例 1:输入: nums = [1,2,3,1]输出: 2解释: 3 是峰值元素,你的函数应该返回其索引 2。示...原创 2018-06-26 10:11:39 · 531 阅读 · 0 评论 -
python 刷 leetcode 题目(46)
169. 求众数给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2代码:class Solution: def majorityElement(self, nums): "...原创 2018-07-01 12:22:24 · 643 阅读 · 0 评论 -
python 刷 leetcode 题目(21)
191. 位1的个数编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例 :输入: 11输出: 3解释: 整数 11 的二进制表示为 00000000000000000000000000001011示例 2:输入: 128输出: 1解释: 整数 128 的二进制表示为 00000000000000000000000010000000思...原创 2018-06-11 10:54:59 · 524 阅读 · 0 评论 -
python 实现进制转化
本篇博客总结了一些python 中进制转换的问题,其中参考了:点击打开链接 这篇博客。import os ,sys# global definition# base = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F]# base = [str(x) for x in range(10)] + [ chr(x) for x in range(o...原创 2018-06-11 10:05:11 · 717 阅读 · 0 评论 -
python 刷leetcode 题目(45)
两整数之和不使用运算符 + 和-,计算两整数a 、b之和。示例:若 a = 1 ,b = 2,返回 3。代码:class Solution: def getSum(self, a, b): """ :type a: int :type b: int :rtype: int """ # retur...原创 2018-06-30 12:18:05 · 485 阅读 · 0 评论 -
python 刷leetcode题目(44)
29. 两数相除给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。示例 1:输入: dividend = 10, divisor = 3输出: 3示例 2:输入: dividend = 7, divisor = -3输出: -2说明:被除数和除数均为 32 位有符...原创 2018-06-30 10:53:16 · 859 阅读 · 0 评论 -
python 刷 leetcode 题目(20)
326. 3的幂给定一个整数,写一个函数来判断它是否是 3 的幂次方。给定一个整数,写一个函数来判断它是否是 3 的幂次方。示例 1:输入: 27输出: true示例 2:输入: 0输出: false示例 3:输入: 9输出: true示例 4:输入: 45输出: false思路:对于3的幂次方,都可以整除3,如果一个数 n 可以整除3,那么我们把整除的结果给 n, 我们只需要判断反复整...原创 2018-06-11 09:13:23 · 399 阅读 · 0 评论 -
python 刷 leetcode 题目(29)
3. 无重复字符的最长子串给定一个字符串,找出不含有重复字符的最长子串的长度。示例:给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。给定 "pwwkew" ,最长子串是 "wke" ,长度是3。请注意答案必须是一个子串,"pwke" 是 子序列 而不是子串。代码:clas原创 2018-06-18 17:04:18 · 501 阅读 · 0 评论 -
python 刷 leetcode 题目 (19)
204. 计数质数统计所有小于非负整数 n 的质数的数量。示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。思路请参考这篇博客:点击打开链接按照上面博客的思路:要得到自然数n以内的全部素数,必须把不大于 的所有素数的倍数剔除,剩下的就是素数。给出要筛数值的范围n,找出以内的素数。先用2去筛,即把2留下,把2的倍数剔除掉;再用下一个质数,也...原创 2018-06-10 16:55:52 · 525 阅读 · 0 评论 -
python 实现 trie(字典) 树
tire 树 也叫字典树,也是一种 N 叉树,是一种特殊的前缀树结构。1、前缀树是N叉树的一种特殊形式。通常来说,一个前缀树是用来存储字符串的。前缀树的每一个节点代表一个字符串(前缀)。每一个节点会有多个子节点,通往不同子节点的路径上有着不同的字符。子节点代表的字符串是由节点本身的原始字符串,以及通往该子节点路径上所有的字符组成的。下面是前缀树的一个例子:前缀树的一个重要的特性是,节点所有的后代都...原创 2018-07-02 09:33:50 · 27827 阅读 · 3 评论 -
二刷 leetcode (6)
242. 有效的字母异位词给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这...原创 2018-07-09 20:47:35 · 339 阅读 · 0 评论 -
二刷 leetcode (10)
104. 二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。代码:递归找出左右子树的最大深度# Definition for a binar...原创 2018-07-13 21:53:13 · 262 阅读 · 0 评论 -
二刷 leetcode(4)
36. 有效的数独判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 '.' 表示。示例 1:输入:[ ["5","3",".",".","7",".&qu原创 2018-07-07 15:22:10 · 251 阅读 · 0 评论 -
二刷leetcode(3)
283. 移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。代码:class Solution: def moveZeroes(self, nums): """ :type ...原创 2018-07-06 23:34:21 · 222 阅读 · 0 评论 -
二刷 leetcode (9)
21. 合并两个有序链表将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4代码:# Definition for singly-linked list.# class ListNode:# def __in...原创 2018-07-12 16:43:55 · 282 阅读 · 0 评论 -
二刷 leetcode (2)
136. 只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4代码如下:class Solution5: def singleNumber(self, num...原创 2018-07-05 20:43:05 · 275 阅读 · 0 评论 -
剑指offer python版本
二叉树的镜像链表中环的入口结点删除链表中重复的结点从尾到头打印链表斐波那契数列跳台阶变态跳台阶矩形覆盖把字符串转换成整数平衡二叉树和为S的连续正数序列左旋转字符串数字在排序数组中出现的次数数组中只出现一次的数字翻转单词顺序列二叉树的深度和为S的两个数字顺时针打印矩阵二叉树的下一个结点对称的二叉树把二叉树打印成多行按之字形顺序打印二叉树序列化二叉树二叉搜索树的第k个结点数据流中的中位数重建二叉树滑动...转载 2018-07-11 23:09:03 · 1627 阅读 · 0 评论 -
二刷 leetcode(8)
237. 删除链表中的节点请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 -- head = [4,5,1,9],它可以表示为: 4 -> 5 -> 1 -> 9示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的...原创 2018-07-11 15:39:13 · 217 阅读 · 0 评论 -
python 刷 leetcode 题目(43)
50. Pow(x, n)实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 < x < 100.0n 是...原创 2018-06-29 14:46:04 · 460 阅读 · 0 评论 -
二刷 leetcode(7)
28. 实现strStr()实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", nee...原创 2018-07-10 23:18:53 · 275 阅读 · 0 评论 -
python 刷 leetcode 题目(42)
172. 阶乘后的零给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例 2:输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.说明: 你算法的时间复杂度应为 O(log n) 。代码:class Solution: def trailingZeroes(self, n): ""...原创 2018-06-28 20:01:56 · 317 阅读 · 0 评论 -
二刷 leetcode(1)
26. 删除排序数组中的重复项给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素...原创 2018-07-03 21:38:50 · 298 阅读 · 0 评论 -
python 刷 leetcode 题目(41)
Longest Increasing Subsequence给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2) 。进阶: 你能将算法的时间复杂度降低到 ...原创 2018-06-28 14:45:40 · 388 阅读 · 0 评论 -
python 刷leetcode题目(40)
62. 不同路径一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m 和 n 的值均不超过 100。示例 1:输入: m = 3, n = 2输出: 3解释:从左上角开始,总...原创 2018-06-28 09:18:22 · 452 阅读 · 0 评论 -
python 的 Stirng 模块
经验之谈小编之前没有用到python的string 模块的一些知识,所以知道的非常局限,最近刷leetcode, 我自己做完题目之后会去看看别人是怎么做的,然后也学习优秀的答题者写代码,自然会有点收获的。介绍一些string几个简单的模块知识string.ascii_lowercase #### 对应的是26个英文小写字母string.ascii_uppercase #### 对应的是26...原创 2018-07-09 10:00:19 · 521 阅读 · 0 评论 -
python 刷leetcode 题目(28)
15. 三数之和给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]class So...原创 2018-06-18 14:53:52 · 279 阅读 · 0 评论 -
python刷leetcode题目(27)
110. 平衡二叉树给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4] ...原创 2018-06-17 12:45:06 · 260 阅读 · 0 评论 -
python 刷leetcode 题目(24)
38. 报数报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211 被读作 "one 1" ("一个一") , 即 11。11 被读作 "two 1s" ("两个一"), 即 21。21 被读作 "one 2", "one 1" ("原创 2018-06-13 15:04:02 · 412 阅读 · 0 评论 -
python 刷 leetcode 题目(12)
98. 验证二叉搜索树给定一个二叉树,判断其是否是一个有效的二叉搜索树。一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ 3 6输出: f...原创 2018-06-06 10:38:06 · 556 阅读 · 0 评论 -
python刷 leetcode 题目(10)
206. 反转链表反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?代码如下:耗时56ms# Definition for singly-linked list.# class ListNode:# ...原创 2018-06-05 14:11:30 · 571 阅读 · 0 评论 -
python刷 leetcode 题目(9)
237. 删除链表中的节点请编写一个函数,使其可以删除某个链表中给定的(非末尾的)节点,您将只被给予要求被删除的节点。比如:假设该链表为 1 -> 2 -> 3 -> 4 ,给定您的为该链表中值为 3 的第三个节点,那么在调用了您的函数之后,该链表则应变成 1 -> 2 -> 4 。代码如下:耗时60ms# Definition for singly-linked ...原创 2018-06-05 14:04:40 · 216 阅读 · 0 评论 -
python 刷leetcode 题目(8)
28. 实现strStr()实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", nee...原创 2018-06-05 13:58:52 · 640 阅读 · 0 评论 -
pythyon 刷leetcode 题目 (7)
1、验证回文字符串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false代码如下:class Solution: def isPalindrome(sel...原创 2018-06-05 13:49:22 · 222 阅读 · 0 评论 -
python 刷 leetcode题目(6)
1、字符串中的第一个唯一字符给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = "leetcode"返回 0.s = "loveleetcode",返回 2. 注意事项:您可以假定该字符串只包含小写字母。代码如下:通过68ms,class Solution: def firstUniqChar(self, s): "...原创 2018-06-05 13:38:04 · 198 阅读 · 0 评论