自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 Leetcode(java, python题解):34.在排序数组中查找元素的第一个和最后一个位置

34.在排序数组中查找元素的第一个和最后一个位置Leetcode:https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(lo...

2019-12-10 14:35:56 123

原创 Leetcode(java,python题解):109.有序链表转换二叉搜索树

109.有序链表转换二叉搜索树题目描述Leetcode:https://leetcode-cn.com/problems/convert-sorted-list-to-binary-search-tree给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链...

2019-12-02 10:03:40 208

原创 python中的生成器

生成器是什么?生成器是简化版的迭代器。生成器函数是一种语法糖,用于编写支持迭代器协议的对象。与编写基于类的迭代器相比,生成器能抽象出许多样板代码。迭代器相关内容:python中的迭代器生成器函数无限生成器基于类的无限循环的迭代器class Repeater: def __init__(self, value): self.value = value ...

2019-11-27 14:18:43 149

原创 python中的迭代器

优雅的for-in循环内部如何工作?在Python中使用迭代器协议,只要对象支持__iter__和__next__双下划线方法,就能使用for-in循环编写支持迭代器协议的Python类无限迭代实现一个可以通过for-in循环迭代的类Repeaterclass Repeater: def __init__(self, value): self.value =...

2019-11-26 11:25:33 304 1

原创 Leetcode(java,python题解):145.二叉树的后序遍历

145.二叉树的后序遍历题目描述Leetcode:https://leetcode-cn.com/problems/binary-tree-postorder-traversal给定一个二叉树,返回它的 后序 遍历。示例:输入: [1,null,2,3]输出: [3,2,1]进阶: 递归算法很简单,你可以通过迭代算法完成吗?解题思路利用栈实现迭代,后序遍历为left-&gt...

2019-11-26 09:10:26 182

原创 Leetcode(java,python题解):637.二叉树的层平均值

637.二叉树的层平均值题目描述https://leetcode-cn.com/problems/average-of-levels-in-binary-tree给定一个非空二叉树, 返回一个由每层节点平均值组成的数组.示例 1:输入:输出: [3, 14.5, 11]解释:第0层的平均值是 3, 第1层是 14.5, 第2层是 11. 因此返回 [3, 14.5, 11]...

2019-11-22 09:54:42 198

原创 python中的浅拷贝和深拷贝

为什么需要拷贝(克隆)对象?Python中的赋值语句不会创建对象(包括不可变对象)的副本,而只是将名称绑定到对象上。当我们需要用到对象的副本,以便修改副本时不会改动主体,就需要拷贝对象。制作浅副本用list()工厂函数制作浅副本>>> list_1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]>>> list_2 = ...

2019-11-14 14:29:31 146

原创 Leetcode(java,python题解):110.平衡二叉树

110.平衡二叉树题目描述Leetcode:https://leetcode-cn.com/problems/balanced-binary-tree/给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7]返回 true 。...

2019-11-14 09:37:26 150

原创 Leetcode(java,python题解):763.划分字母区间

763.划分字母区间题目描述:Leetcode:https://leetcode-cn.com/problems/partition-labels/字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。示例 1:输入: S = “ababcbacadefegdehijhklij”输出: [9,7...

2019-11-12 11:37:51 226

原创 python中的装饰器

装饰器Python装饰器的应用将通用的功能(日志,访问控制和授权,缓存等等)应用到现有的可调用对象如类或函数,同时又不会永久修改可调用对象本身。理解装饰器前要了解的函数特性函数是对象,可以分配给变量并传递给其他函数,以及从其他函数返回;词法闭包,在函数内部也能定义函数,并且子函数可以捕获父函数的局部状态...

2019-11-11 15:35:31 172

原创 Leetcode(java,python题解):406.根据身高重建队列

406.根据身高重建队列题目描述Leetcode:https://leetcode-cn.com/problems/queue-reconstruction-by-height/假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。注意:总人数少于1100人。示例输入:...

2019-11-07 10:06:32 265

原创 Leetcode(java,python题解):435.无重叠区间

435.无重叠区间题目描述Leetcode:https://leetcode-cn.com/problems/non-overlapping-intervals/给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。示例 1:输入: [ [1,2], [2,...

2019-11-05 09:45:15 355

原创 python中的上下文管理器和with语句

引入:打开一个文件并写入‘hello, world’,可用代码一和代码二实现:代码一:f = open("hello.txt", 'w')try: f.write('hello, world')finally: f.close()代码二:with语句通过在上下文管理器中封装try…finally语句的标准用法来简化异常处理with open('hello.txt', 'w')...

2019-11-04 15:49:13 246

原创 Leetcode(java,python题解):328.奇偶链表

328.奇偶链表题目描述Leetcode:https://leetcode-cn.com/problems/odd-even-linked-list/给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes ...

2019-11-04 12:33:57 103

原创 Leetcode(java,python题解):725.分隔链表

725.分隔链表题目描述Leetcode:https://leetcode-cn.com/problems/split-linked-list-in-parts/给定一个头结点为 root 的链表, 编写一个函数以将链表分隔为 k 个连续的部分。每部分的长度应该尽可能的相等: 任意两部分的长度差距不能超过 1,也就是说可能有些部分为 null。这k个部分应该按照在链表中出现的顺序进行输出...

2019-11-04 11:21:49 132

原创 Leetcode(java,python题解):234.回文链表

234.回文链表题目描述Leetcode:https://leetcode-cn.com/problems/palindrome-linked-list/请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?...

2019-11-04 10:32:42 133

原创 Leetcode(java,python题解):445.两数相加II

445.两数相加II题目描述Leetcode:https://leetcode-cn.com/problems/add-two-numbers-ii/给定两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。进阶:如果输入链表不能修改该如何处理?换句话说,你不能对...

2019-11-04 09:26:21 205

原创 Leetcode(java,python题解):24.两两交换链表中的节点

24.两两交换链表中的节点题目描述Leetcode:https://leetcode-cn.com/problems/swap-nodes-in-pairs/给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.解...

2019-11-01 09:43:22 104

原创 Leetcode(java,python题解):19.删除链表的倒数第N个节点

19.删除链表的倒数第N个节点题目描述Leetcode:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1-&...

2019-10-30 09:43:52 152

原创 Leetcode(java,python题解):206.反转链表

206.反转链表题目描述Leetcode:https://leetcode-cn.com/problems/reverse-linked-list/反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?...

2019-10-29 09:15:59 147

原创 Leetcode:75.颜色分类

75.颜色分类题目描述Leetcode:https://leetcode-cn.com/problems/sort-colors/给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入:...

2019-10-24 19:50:38 128

原创 Leetcode:451.根据字符出现频率排序

451.根据字符出现频率排序题目描述Leetcode:https://leetcode-cn.com/problems/sort-characters-by-frequency/给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例 1:输入:“tree”输出:“eert”解释:'e’出现两次,'r’和’t’都只出现一次。因此’e’必须出现在’r’和’t’之前。此外,...

2019-10-24 19:05:50 158

原创 Leetcode(java,python题解):347.前K个高频元素

347.前K个高频元素题目描述Leetcode:https://leetcode-cn.com/problems/top-k-frequent-elements/给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]说明...

2019-10-22 09:40:03 145 1

原创 Leetcode(java,python题解):215.数组中的第k个最大元素

215.数组中的第k个最大元素题目描述Leetcode:https://leetcode-cn.com/problems/kth-largest-element-in-an-array/在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 ...

2019-10-17 20:34:59 188

原创 Leetcode(java,python题解):524.通过删除字母匹配到字典里的最长单词

524.通过删除字母匹配到字典里的最长单词题目描述Leetcode:https://leetcode-cn.com/problems/longest-word-in-dictionary-through-deleting/给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到。如果答案不止一个,返回长度最长且字典顺序最小的字符串。如果答案不...

2019-10-15 18:49:20 198

原创 Leetcode(java,python题解):141.环形链表

141.环形链表题目描述Leetcode:https://leetcode-cn.com/problems/linked-list-cycle/给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = ...

2019-10-14 14:55:45 121

原创 Leetcode(java,python题解):88.合并两个有序数组

合并两个有序数组题目描述Leetcode:https://leetcode-cn.com/problems/merge-sorted-array/给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小...

2019-10-09 17:45:33 118

原创 Leetcode(java,python题解):680.验证回文字符串II

Leetcode:680.验证回文字符串II题目描述Leetcode:https://leetcode-cn.com/problems/valid-palindrome-ii/给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: “aba”输出: True示例 2:输入: “abca”输出: True解释: 你可以删除c字符。注意:字符串只包...

2019-10-09 14:49:54 140

原创 Leetcode(java,python题解):345.反转字符串中的元音字符

Leetcode:345.反转字符串中的元音字符题目描述Leetcode:https://leetcode-cn.com/problems/reverse-vowels-of-a-string/编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1:输入: “hello”输出: “holle”示例 2:输入: “leetcode”输出: “leotcede”说明:...

2019-10-08 21:10:43 122

原创 Leetcode(java,python题解):167.两数之和 II - 输入有序数组

167.两数之和 II - 输入有序数组题目描述给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbe...

2019-10-08 19:17:20 136

原创 剑指Offer(java,python题解):替换空格

替换空格题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解题思路填充字符串为替换后的长度。即遍历数组每遇到空格需替换成三个字符"%20",就先在字符串尾部添加任意两个字符;设P1为原字符串末尾位置,P2为替换后字符串末尾位置。从P1往前遍历,如果遇到空格,P2往前填充"%...

2019-10-05 19:05:28 167

原创 剑指Offer(java,python题解):二维数组中的查找

二维数组中的查找题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路每一行左边的数小于右边的数,每一列上边的数小于下边的数;从右上角开始查找target,根据当前元素和target的大小关系缩小查找区间;java代码public ...

2019-10-04 10:39:55 134

原创 剑指Offer(java,python题解):数组中重复的数字

数组中重复的数字本文转载自CS-Notes题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。解题思路数组元素在[0, n-1]范围内,可以遍历数组将值为i的元素调整到...

2019-10-03 12:09:18 283

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除