随笔分类 -  Algorithm

程序=算法+数据结构
摘要:Medium! 题目描述: 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意:不能使用代码库中的排序函数来解决这道题。 示例: 进阶: 一个直观 阅读全文
posted @ 2018-06-08 10:27 Ariel_一只猫的旅行 阅读(815) 评论(0) 推荐(0)
摘要:Medium! 题目描述: 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 1: 示例 2: 解题思路: 这道题要求搜索一个二维矩阵,由于给的矩阵是有序的,所以很自然的想到要用 阅读全文
posted @ 2018-06-08 10:23 Ariel_一只猫的旅行 阅读(477) 评论(0) 推荐(0)
摘要:Medium! 题目描述: 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。 示例 1: 输入: [ [1,1,1], [1,0,1], [1,1,1] ] 输出: [ [1,0,1], [0,0,0], [1,0,1] ] 示例 2: 输入: 阅读全文
posted @ 2018-06-08 10:10 Ariel_一只猫的旅行 阅读(886) 评论(0) 推荐(0)
摘要:Hard! 题目描述: 给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 示例 1: 示例 2: 解题思路: 这道题让求从一个字符串转变到另一个字符串需要的变换步骤,共有三种变换方式,插入一个字符,删除一个 阅读全文
posted @ 2018-06-08 10:04 Ariel_一只猫的旅行 阅读(204) 评论(0) 推荐(0)
摘要:Medium! 题目描述: 给定一个文档 (Unix-style) 的完全路径,请进行路径简化。 例如,path = "/home/", => "/home"path = "/a/./b/../../c/", => "/c" 边界情况: 你是否考虑了 路径 = "/../" 的情况?在这种情况下,你 阅读全文
posted @ 2018-06-08 09:48 Ariel_一只猫的旅行 阅读(1762) 评论(0) 推荐(0)
摘要:Easy! 题目描述: 假设你正在爬楼梯。需要 n 步你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 示例 2: 解题思路: 这道题目实际上跟斐波那契数列非常相似,假设梯子有n层,那么如何爬到第n层呢,因为每次只能 阅读全文
posted @ 2018-06-08 09:35 Ariel_一只猫的旅行 阅读(2355) 评论(0) 推荐(0)
摘要:Easy! 题目描述: 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 1: 示例 2: 解题思路: 这道题要求平方根,我们能想到的方法就是算一个候选值的平方,然后和x比较大小,为了缩 阅读全文
posted @ 2018-06-07 16:56 Ariel_一只猫的旅行 阅读(1572) 评论(0) 推荐(0)
摘要:Hard! 题目描述: 给定一个单词数组和一个长度 maxWidth,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本。 你应该使用“贪心算法”来放置给定的单词;也就是说,尽可能多地往每行中放置单词。必要时可用空格 ' ' 填充,使得每行恰好有 maxWidth 个字 阅读全文
posted @ 2018-06-07 16:40 Ariel_一只猫的旅行 阅读(1248) 评论(0) 推荐(0)
摘要:Easy! 题目描述: 给定两个二进制字符串,返回它们的和(用二进制表示)。 输入为非空字符串且只包含数字 1 和 0。 示例 1: 输入: a = "11", b = "1" 输出: "100" 示例 2: 输入: a = "1010", b = "1011" 输出: "10101" 给定两个二进 阅读全文
posted @ 2018-06-07 16:30 Ariel_一只猫的旅行 阅读(3987) 评论(0) 推荐(0)
摘要:Easy! 题目描述: 给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 示例 2: 解题思路: 将一个数字的每个位上的数字分别存到一个一维向量中,最 阅读全文
posted @ 2018-06-07 15:59 Ariel_一只猫的旅行 阅读(502) 评论(0) 推荐(0)
摘要:Hard! 题目描述: 验证给定的字符串是否为数字。 例如:"0" => true" 0.1 " => true"abc" => false"1 a" => false"2e10" => true 说明: 我们有意将问题陈述地比较模糊。在实现代码之前,你应当事先思考所有可能的情况。 解题思路: 这道 阅读全文
posted @ 2018-06-07 15:47 Ariel_一只猫的旅行 阅读(1034) 评论(0) 推荐(0)
摘要:Medium! 题目描述: 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 解题思路: 用动态规划Dynamic Programming来做,这应该算是DP问题中比较简单的一类,我们维护一个二维的 阅读全文
posted @ 2018-06-07 11:40 Ariel_一只猫的旅行 阅读(1675) 评论(0) 推荐(0)
摘要:Medium! 题目描述: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径? 网格中的障碍 阅读全文
posted @ 2018-06-07 11:38 Ariel_一只猫的旅行 阅读(585) 评论(0) 推荐(0)
摘要:Medium! 题目描述: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共有多少条不同的路径? 例如,上图是一个7 x 3 的网格。有多少可能的路径? 阅读全文
posted @ 2018-06-07 11:31 Ariel_一只猫的旅行 阅读(248) 评论(0) 推荐(0)
摘要:Medium! 题目描述: 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 示例 1: 示例 2: 解题思路: 这道旋转链表的题和之前那道 Rotate Array 旋转数组 很类似,但是比那道要难一些,因为链表的值不能通过下标来访问,只能一个一个的走,我们可能首先 阅读全文
posted @ 2018-06-07 11:25 Ariel_一只猫的旅行 阅读(2925) 评论(0) 推荐(0)
摘要:Medium! 题目描述: 给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。 按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下: "123" "132" "213" "231" "312" "321" 给定 n 和 k,返回第 k 个排列。 说明: 给定 n 阅读全文
posted @ 2018-06-07 11:05 Ariel_一只猫的旅行 阅读(5534) 评论(0) 推荐(0)
摘要:Medium! 题目描述: 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 示例: 解题思路: 此题跟之前那道 Spiral Matrix 螺旋矩阵 本质上没什么区别,就相当于个类似逆运算的过程,这道题是要按螺旋的顺序来填数,由于给定矩形是个正方形 阅读全文
posted @ 2018-06-07 10:45 Ariel_一只猫的旅行 阅读(695) 评论(0) 推荐(0)
摘要:Easy! 题目描述: 给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。 如果不存在最后一个单词,请返回 0 。 说明:一个单词是指由字母组成,但不包含任何空格的字符串。 示例: 解题思路: 这道题难度不是很大。先对输入字符串做预处理,去掉开头和结尾的空格,然后用一个计数 阅读全文
posted @ 2018-06-07 10:36 Ariel_一只猫的旅行 阅读(949) 评论(0) 推荐(0)
摘要:Hard! 题目描述: 给出一个无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 示例 1: 示例 2: 解题思路: 这道题让我们在一系列非重叠的区间中插入一个新的区间,可能还需要和原有的区间合并,那么我 阅读全文
posted @ 2018-06-07 10:25 Ariel_一只猫的旅行 阅读(894) 评论(0) 推荐(0)
摘要:Medium! 题目描述: 给出一个区间的集合,请合并所有重叠的区间。 示例 1: 示例 2: 解题思路: 这道和那道 Insert Interval 插入区间 (http://www.cnblogs.com/grandyang/p/4367569.html)很类似,题目要求我们合并区间,之前那题明 阅读全文
posted @ 2018-06-07 10:09 Ariel_一只猫的旅行 阅读(323) 评论(0) 推荐(0)