随笔分类 -  Python

摘要:1、题目描述 给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。 如果数组元素个数小于 2,则返回 0。 示例 1: 示例 2: 说明: 你可以假设数组中所有元素都是非负整数,且数值在 32 位有符号整数范围内。 请尝试在线性时间复杂度和空间复杂度的条件下解决此问题。 2、题解 2.1 阅读全文
posted @ 2018-12-04 17:40 RobotsRising 阅读(431) 评论(0) 推荐(0)
摘要:1、题目描述 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例: 2、题解 2.1、解法一 阅读全文
posted @ 2018-12-04 17:37 RobotsRising 阅读(160) 评论(0) 推荐(0)
摘要:1、题目描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 请找出其中最小的元素。 注意数组中可能存在重复的元素。 示例 1: 示例 2: 说明: 这道题是 寻找旋转排序数组中的最小值 的延伸题 阅读全文
posted @ 2018-12-04 17:36 RobotsRising 阅读(221) 评论(0) 推荐(0)
摘要:1、题目描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 请找出其中最小的元素。 你可以假设数组中不存在重复元素。 示例 1: 示例 2: 2、题解 2.1、解法一 阅读全文
posted @ 2018-12-04 17:34 RobotsRising 阅读(400) 评论(0) 推荐(0)
摘要:1、题目描述 给定一个字符串,逐个翻转字符串中的每个单词。 示例: 说明: 无空格字符构成一个单词。 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。 进阶: 请选用C语言的用户尝试使用 O(1) 空间复杂度的原 阅读全文
posted @ 2018-12-04 17:32 RobotsRising 阅读(482) 评论(0) 推荐(0)
摘要:1、题目描述 给定一个二叉树,返回它的 后序 遍历。 示例: 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 2、题解 2.1、解法一 原理:迭代算法 阅读全文
posted @ 2018-12-04 17:30 RobotsRising 阅读(172) 评论(0) 推荐(0)
摘要:1、题目描述 反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明:1 ≤ m ≤ n ≤ 链表长度。 示例: 2、题解 2.1、解法一 阅读全文
posted @ 2018-12-04 17:27 RobotsRising 阅读(316) 评论(0) 推荐(0)
摘要:1、题目描述 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。 示例: 2、题解 2.1、解法一 阅读全文
posted @ 2018-12-04 17:26 RobotsRising 阅读(163) 评论(0) 推荐(0)
摘要:1、题目描述 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。 图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个 阅读全文
posted @ 2018-12-04 17:24 RobotsRising 阅读(339) 评论(0) 推荐(0)
摘要:1、题目描述 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。 示例 1: 示例 2: 2、题解 2.1、解法一 原理:递归 2.2、解法二 原理: 取首行,去除首行后,对矩阵翻转来创建新的矩阵,再递归直到新矩阵为[],退出并将取到的数据返回 阅读全文
posted @ 2018-12-04 17:19 RobotsRising 阅读(453) 评论(0) 推荐(0)
摘要:1、题目描述 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 示例: 说明: 所有输入均为小写字母。 不考虑答案输出的顺序。 2、题解 2.1、解法一 原理:使用每个字符串排序,然后作为字典的key,源字符串作为value。 阅读全文
posted @ 2018-12-04 17:15 RobotsRising 阅读(225) 评论(0) 推荐(0)
摘要:1、题目描述 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 2、题解 2.1、解法一 阅读全文
posted @ 2018-12-04 17:12 RobotsRising 阅读(125) 评论(0) 推荐(0)
摘要:1、题目描述 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 示例 1: 示例 2: 说明: 2、题解 2.1、解法一 阅读全文
posted @ 2018-12-04 17:08 RobotsRising 阅读(142) 评论(0) 推荐(0)
摘要:1、题目描述 给定一个未排序的整数数组,找出其中没有出现的最小的正整数。 示例 1: 示例 2: 示例 3: 说明: 你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。 2、题解 2.1、解法一 原理:先对列表排序,然后判断相邻元素的差值是否大于1 阅读全文
posted @ 2018-12-04 17:06 RobotsRising 阅读(266) 评论(0) 推荐(0)
摘要:1、题目描述 判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。 上图是一个部分填充的有效的数独。 数独部分空格内已填入了数字,空白格用 '.' 表示。 示例 1: 示例 2: 说明: 一个有效的数独(部分已被填充)不一定是可解的。 只需要根据以上规则,验证已经填 阅读全文
posted @ 2018-12-04 17:03 RobotsRising 阅读(231) 评论(0) 推荐(0)
摘要:1、题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 1: 输入: [1,3,5,6], 5 输出: 2 示例 2: 输入: [1,3,5,6], 2 输出: 1 示例 3: 输入: 阅读全文
posted @ 2018-12-04 16:58 RobotsRising 阅读(165) 评论(0) 推荐(0)
摘要:1、题目描述 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值,返回 [-1, -1]。 示例 1: 输入: nums = [5,7,7,8,8,10], t 阅读全文
posted @ 2018-12-04 16:55 RobotsRising 阅读(193) 评论(0) 推荐(0)
摘要:1、题目描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 你可以假设数组中不存在重复的元素。 你的算法时间复 阅读全文
posted @ 2018-12-04 16:50 RobotsRising 阅读(125) 评论(0) 推荐(0)
摘要:1、题目描述 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。 必须原地修改,只允许使用额外常数空间。 以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2 阅读全文
posted @ 2018-12-04 16:46 RobotsRising 阅读(143) 评论(0) 推荐(0)
摘要:1、题目描述 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1->1->2->3->4->4->5->6 2、题解 2.1、解法一 原理:分治算法,将链表列表拆分成单个链表,然后再合并 阅读全文
posted @ 2018-12-04 16:41 RobotsRising 阅读(271) 评论(0) 推荐(0)