
Leetcode
自己以及借鉴前辈们,刷题经验,一点点整理的每题解法。自己比较菜,仅供各位参考。
楚暮天流
科研民工
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode 串联所有单词子串 Java
借鉴其他博主思路: class Solution { public List<Integer> findSubstring(String s, String[] words) { List<Integer> list=new ArrayList<>(); if(words.length==0||s.length()...转载 2019-04-24 11:28:42 · 397 阅读 · 0 评论 -
leetcode 实现strStr() Java 用时2ms
实现strStr()函数。 给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回-1。 示例 1: 输入: haystack = "hello", needle = "ll" 输出: 2 示例 2: 输入: haystack = "aaaaa", ne...原创 2019-04-22 10:15:07 · 205 阅读 · 0 评论 -
Leetcode 移除元素 Java 3ms
给定一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前...原创 2019-04-19 09:05:01 · 235 阅读 · 0 评论 -
Leetcode 删除排序数组重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为: [1,2] 你不需要考虑数组中超出新长度后面的元素。 示例2:...原创 2019-04-18 16:49:04 · 253 阅读 · 0 评论 -
Leetcode 两两交换链表
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3. 一种超过时间复杂度的算法(自己写的,真菜,还蠢): class Solution { public ListNode swapPair...原创 2019-04-18 15:31:36 · 242 阅读 · 0 评论 -
Leetcode 生成括号
给出n代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出n=3,生成结果为: [ "((()))", "(()())", "(())()", "()(())", "()()()" ] 题解 借鉴(抄的,哈哈)的回溯法 只有在我们知道序列仍然保持有效时才添加'('or'),我们可以通过跟踪到前为止放置的左括号...原创 2019-04-18 14:20:23 · 203 阅读 · 0 评论 -
leetcode Java 2ms 删除链表倒数第N个节点
给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的n保证是有效的。 采取暴力法: /** * Definition for singly-linked list. * ...原创 2019-04-17 14:26:57 · 637 阅读 · 0 评论 -
Leetcode15 三位数之和
给定一个包含n个整数的数组nums,判断nums中是否存在三个元素a,b,c ,使得a + b + c =0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ] 代码如下...原创 2019-04-12 17:27:56 · 241 阅读 · 0 评论 -
leetcode 14 最长公共前缀 用时3ms
编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串""。 示例1: 输入: ["flower","flow","flight"] 输出: "fl" 示例2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。 说明: 所有输入只包含小写字母a-z。 纪念一下自己的独立暴力解法,一点没有参...原创 2019-04-11 17:06:45 · 206 阅读 · 0 评论 -
leetcode13 罗马数字转整数 用时28ms
罗马数字包含以下七种字符:I,V,X,L,C,D和M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做II,即为两个并列的 1...原创 2019-04-11 16:20:03 · 161 阅读 · 0 评论 -
leetcode12 整数转罗马数字
罗马数字包含以下七种字符:I,V,X,L,C,D和M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做II,即为两个并列的 1...原创 2019-04-10 19:22:17 · 156 阅读 · 0 评论 -
Leetcode11 盛最多水的容器 Java解法 用时6ms
给定n个非负整数a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画n条垂直线,垂直线i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且n的值至少为 2。 思路:官方双指针思路。这种方法背后的思路在于,两线段之间形成的区域总是会受到其中较短那...原创 2019-04-09 20:52:42 · 470 阅读 · 0 评论 -
Leetcode 10 正则表达式
给定一个字符串(s) 和一个字符模式(p)。实现支持'.'和'*'的正则表达式匹配。 '.' 匹配任意单个字符。 '*' 匹配零个或多个前面的元素。 匹配应该覆盖整个字符串(s) ,而不是部分字符串。 说明: s可能为空,且只包含从a-z的小写字母。 p可能为空,且只包含从a-z的小写字母,以及字符.和*。 示例 1: 输入: s = "aa" p...原创 2019-04-08 11:24:32 · 152 阅读 · 0 评论 -
leetcode Z字型变换
当行数=4时,每个字母在原字符串的索引的矩阵排列如下: 1 7 13 2 6 8 12 14 3 5 9 11 4 10 假设当前行数是r,总行数R,I(n)表示某行第n个字母在原字符串中的index,n从1开始: r=1,R时,I(n+1) = I(n)+2(R-1) 1<r<R时, I(n+1) = I(n)+2(R-r) n+1为偶数时...原创 2019-04-01 19:15:37 · 219 阅读 · 0 评论