随笔分类 -  算法编程

摘要:题目描述: 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 1。 ++示例 1:++ 输入: haystack = "hello", needl 阅读全文

posted @ 2019-04-29 20:24 jackley 阅读(114) 评论(0) 推荐(0)

摘要:题目描述: ++难度:简单++ 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 给定 阅读全文

posted @ 2019-04-25 19:35 jackley 阅读(175) 评论(0) 推荐(0)

摘要:题目描述: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 n 阅读全文

posted @ 2019-04-24 19:22 jackley 阅读(117) 评论(0) 推荐(0)

摘要:LeetCode题目描述: 给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序。 示例 : 给定这个链表:1->2->3->4->5 当 k = 2 时,应当返回: 2->1-> 阅读全文

posted @ 2019-04-18 23:07 jackley 阅读(155) 评论(0) 推荐(0)

摘要:题目描述 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3. 我的方法: 看起来并不算很难,重点应该在于理顺整个处理流程。 将节点分为两两一组,每次处理两 阅读全文

posted @ 2019-04-10 08:46 jackley 阅读(105) 评论(0) 推荐(0)

摘要:问题描述: 八皇后问题是一个以国际象棋为背景的问题:如何能够在8×8的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。八皇后问题可以推广为更一般的n皇后摆放问题:这时棋盘的大小变为n×n,而皇后个数也变成n。当且仅当 阅读全文

posted @ 2019-04-02 23:20 jackley 阅读(210) 评论(0) 推荐(0)

摘要:题目描述: 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出 n = 3,生成结果为: [ "((()))", "(()())", "(())()", "()(())", "()()()" ] 我的方法: 一种思路是列出所有可能性,排除其中不合法 阅读全文

posted @ 2019-03-29 00:01 jackley 阅读(114) 评论(0) 推荐(0)

摘要:题目描述: 合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1->1->2->3->4->4->5->6 我的方法: 可以用递归或者直接循环,将k个排序链表转换为2个链表的排序。假如用递归的方法: 阅读全文

posted @ 2019-03-26 19:28 jackley 阅读(85) 评论(0) 推荐(0)

摘要:题目描述: 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 我的方法: 这个题目比较简单,解法如下: 两个指针分别指向两个链表的头部。 比较对应位置的数字大小,记录较 阅读全文

posted @ 2019-03-21 22:48 jackley 阅读(79) 评论(0) 推荐(0)

摘要:题目描述: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true 示例 2: 输入: " 阅读全文

posted @ 2019-03-19 20:15 jackley 阅读(98) 评论(0) 推荐(0)

摘要:题目描述: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例:给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明:给定的 n 保证是有效的。 进阶:你能尝试使用一趟扫描实现吗? 我的方法: 基本的思 阅读全文

posted @ 2019-03-13 22:03 jackley 阅读(100) 评论(0) 推荐(0)

摘要:给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。 注意:答案中不可以包含重复的四元组。 示例: 给定数组 nums = [1 阅读全文

posted @ 2019-03-11 20:08 jackley 阅读(94) 评论(0) 推荐(0)

摘要:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 200px-Telephone-keypad2.svg.png 示例: 输入:"23" 输出:["ad", "ae", "af", "bd", "be", "b 阅读全文

posted @ 2019-03-07 22:28 jackley 阅读(105) 评论(0) 推荐(0)

摘要:给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三 阅读全文

posted @ 2019-03-06 23:40 jackley 阅读(165) 评论(0) 推荐(0)

摘要:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组集合 阅读全文

posted @ 2019-03-01 13:06 jackley 阅读(112) 评论(0) 推荐(0)

摘要:罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V 阅读全文

posted @ 2019-02-21 19:40 jackley 阅读(118) 评论(0) 推荐(0)

摘要:罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V 阅读全文

posted @ 2019-02-20 15:25 jackley 阅读(120) 评论(0) 推荐(0)

摘要:给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。 阅读全文

posted @ 2019-02-15 13:01 jackley 阅读(96) 评论(0) 推荐(0)

摘要:题目描述: 给定一个字符串 (s) 和一个字符模式 (p)。实现支持 '.' 和 '*' 的正则表达式匹配。 '.' 匹配任意单个字符。 '*' 匹配零个或多个前面的元素。 匹配应该覆盖整个字符串 (s) ,而不是部分字符串。 说明: s 可能为空,且只包含从 a-z 的小写字母。 p 可能为空,且 阅读全文

posted @ 2019-01-31 20:00 jackley 阅读(97) 评论(0) 推荐(0)

摘要:题目描述: 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3 阅读全文

posted @ 2019-01-29 20:05 jackley 阅读(106) 评论(0) 推荐(0)