leetcode
却顾所来径
当你老了,回顾一生,就会发觉:什么时候出国读书、什么时候决定做第一份职业、何时选定了对象而恋爱、什么时候结婚,其实都是命运的巨变。只是当时站在三岔路口,眼见风云千樯,你作出抉择的那一日,在日记上,相当的沉闷和平凡,当时还以为是生命中普通的一天。
展开
-
leetcode 19. Remove Nth Node From End of List
Given a linked list, remove then-th node from the end of list and return its head.Example:Given linked list: 1->2->3->4->5, and n = 2.After removing the second node from the end, t...翻译 2020-01-25 10:58:21 · 187 阅读 · 0 评论 -
leetcode 2. Add Two Numbers(java递归解法)
You are given twonon-emptylinked lists representing two non-negative integers. The digits are stored inreverse orderand each of their nodes contain a single digit. Add the two numbers and return i...原创 2020-01-24 17:01:05 · 297 阅读 · 0 评论 -
leetcode 746. 使用最小花费爬楼梯
数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例 1:输入: cost = [10, 15, 20]输出: 15解释: 最低花费是从cost[1]开始,...原创 2018-07-13 19:33:04 · 163 阅读 · 0 评论 -
leetcode 58. 最后一个单词的长度
题目描述:给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: "Hello World"输出: 5分析:设置i指向字符串末尾,从后向前遍历,若当前i 指向的字符为空格,继续前移,即执行i--操作,若i最后小于0,即i=-1,说明-1后面的都...原创 2018-09-11 20:04:59 · 152 阅读 · 0 评论 -
leetcode 387. 字符串中的第一个唯一字符
题目描述:给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = "leetcode"返回 0.s = "loveleetcode",返回 2. 注意事项:您可以假定该字符串只包含小写字母。两种代码:entrySet()和keySet(),最后都能ac,区别:entrySet()方法能一次性获得key和value。ke...原创 2018-09-11 21:01:44 · 292 阅读 · 0 评论 -
leetcode 434. 字符串中的单词数
题目描述:Count the number of segments in a string, where a segment is defined to be a contiguous sequence of non-space characters.Please note that the string does not contain any non-printable charact...原创 2018-09-11 22:12:24 · 430 阅读 · 0 评论 -
Leetcode 557. 反转字符串中的单词 III(Java)
题目描述:给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc" 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。代码:class Solution { pu...原创 2018-09-09 14:56:04 · 1400 阅读 · 0 评论 -
leetcode 520. 检测大写字母(java)
题目描述:给定一个单词,你需要判断单词的大写使用是否正确。我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如"USA"。 单词中所有字母都不是大写,比如"leetcode"。 如果单词不只含有一个字母,只有首字母大写, 比如 "Google"。否则,我们定义这个单词没有正确使用大写字母。示例 1:输入: "USA"输出: True示例 2:...原创 2018-09-09 16:07:27 · 595 阅读 · 0 评论 -
leetcode 788. 旋转数字(java)
题目描述:我们称一个数 X 为好数, 如果它的每位数字逐个地被旋转 180 度后,我们仍可以得到一个有效的,且和 X 不同的数。要求每位数字都要被旋转。如果一个数的每位数字被旋转以后仍然还是一个数字, 则这个数是有效的。0, 1, 和 8 被旋转后仍然是它们自己;2 和 5 可以互相旋转成对方;6 和 9 同理,除了这些以外其他的数字旋转以后都不再是有效的数字。现在我们有一个正整数 N...原创 2018-09-09 17:09:18 · 646 阅读 · 0 评论 -
leetcode 859. 亲密字符串(java)
题目描述:给定两个由小写字母构成的字符串A和B,只要我们可以通过交换A中的两个字母得到与B相等的结果,就返回true;否则返回false。示例 1:输入: A = "ab", B = "ba"输出: true示例 2:输入: A = "ab", B = "ab"输出: false示例 3:输入: A = "aa", B = "...原创 2018-09-15 20:41:08 · 478 阅读 · 0 评论 -
leetcode 69. x 的平方根(java) (牛顿迭代法解析)
题目描述:实现int sqrt(int x)函数。计算并返回x的平方根,其中x是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。方法一、二分法:很容易想到,所以...原创 2018-09-16 22:29:38 · 1589 阅读 · 2 评论 -
leetcode 709. 转换成小写字母
实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。 示例 1:输入: "Hello"输出: "hello"示例 2:输入: "here"输出: "here"示例 3:输入: "LOVELY"输出: "lovely"class Solution { publ原创 2018-09-06 22:31:32 · 173 阅读 · 0 评论 -
leetcode 125. 验证回文串(java)
题目描述:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false分析:首先特殊情况分开讨论,s.length()==0,s="...原创 2018-09-11 19:10:15 · 1042 阅读 · 0 评论 -
leetcode 67. 二进制求和
题目描述:给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = "11", b = "1"输出: "100"示例 2:输入: a = "1010", b = "1011"输出: "10101"代码:class Solution { public String addBinar原创 2018-09-11 17:48:47 · 86 阅读 · 0 评论 -
leetcode 198. 打家劫舍(动态规划)
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃...原创 2018-07-13 21:03:57 · 142 阅读 · 0 评论 -
leetcode 53. 最大子序和(分治法和动态规划)
给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。思路:代码:动态规划:很简单,定义一个数组,dp[]...原创 2018-07-13 22:50:01 · 7283 阅读 · 1 评论 -
leetcode 338. Bit位计数(动态规划)
给定一个非负整数num。 对于范围0 ≤ i ≤ num中的每个数字i,计算其二进制数中的1的数目并将它们作为数组返回。示例:比如给定num = 5,应该返回[0,1,1,2,1,2].进阶:给出时间复杂度为O(n * sizeof(integer))的解答非常容易。 但是你可以在线性时间O(n)内用一次遍历做到吗? 要求算法的空间复杂度为O(n)。 你能进一步...原创 2018-07-14 21:16:42 · 526 阅读 · 0 评论 -
leedcode 64. 最小路径和(动态规划)
给定一个包含非负整数的mxn网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。代码:简单动态规划,思路也很简单class Solution {public: ...原创 2018-07-14 21:50:58 · 231 阅读 · 0 评论 -
leetcode 11. 盛最多水的容器
给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(...原创 2018-08-21 15:33:21 · 95 阅读 · 0 评论 -
leetcode 12. 整数转罗马数字
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1...原创 2018-08-21 16:15:31 · 142 阅读 · 0 评论 -
leetcode 13. 罗马数字转整数
罗马数字包含以下七种字符:I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。...原创 2018-08-21 19:05:38 · 104 阅读 · 0 评论 -
leetcode 14. 最长公共前缀
题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明原创 2018-08-21 19:44:27 · 110 阅读 · 0 评论 -
leetcode 541. 反转字符串 II
题目描述:给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符,则将剩余的所有全部反转。如果有小于 2k 但大于或等于 k 个字符,则反转前 k 个字符,并将剩余的字符保持原样。示例:输入: s = "abcdefg", k = 2输出: "bacdfeg"要求:该字符串只包含小写的英文字母。 给定字符...原创 2018-09-11 13:22:49 · 346 阅读 · 0 评论 -
leetcode 345. 反转字符串中的元音字母
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1:输入: "hello"输出: "holle"示例 2:输入: "leetcode"输出: "leotcede"说明:元音字母不包含字母"y"。代码1:public class Solution { public String reverseVowels(String s) { ...原创 2018-09-11 15:52:21 · 129 阅读 · 0 评论 -
459. 重复的子字符串(java)
题目描述:给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例 1:输入: "abab"输出: True解释: 可由子字符串 "ab" 重复两次构成。示例 2:输入: "aba"输出: False示例 3:输入: "abcabcabcabc"输出: True解释: 可...原创 2018-09-12 21:29:23 · 712 阅读 · 0 评论 -
leetcode 20. 有效的括号(java)
题目描述:给定一个只包括'(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出:...原创 2018-09-14 22:36:18 · 629 阅读 · 0 评论 -
leetcode 559. N叉树的最大深度
题目描述:给定一个 N 叉树,找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。例如,给定一个3叉树:我们应返回其最大深度,3。说明:树的深度不会超过1000。 树的节点总不会超过5000。简单题,直接贴代码:代码:class Solution { public int maxDepth(Node roo...原创 2018-10-17 17:42:20 · 245 阅读 · 0 评论 -
leetcode 590. N叉树的后序遍历
题目描述:给定一个 N 叉树,返回其节点值的后序遍历。例如,给定一个3叉树:返回其后序遍历:[5,6,3,2,4,1].代码:递归版本:class Solution { public List<Integer> postorder(Node root) { List<Integer> list=new ...原创 2018-10-17 18:16:00 · 466 阅读 · 0 评论 -
leetcode 700. 二叉搜索树中的搜索(二叉搜索树)
题目描述:给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。例如,给定二叉搜索树: 4 / \ 2 7 / \ 1 3和值: 2你应该返回如下子树: 2 / \ ...原创 2018-10-17 18:25:06 · 363 阅读 · 0 评论 -
leetcode 872. 叶子相似的树
题目描述:请考虑一颗二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个叶值序列。举个例子,如上图所示,给定一颗叶值序列为(6, 7, 4, 9, 8)的树。如果有两颗二叉树的叶值序列是相同,那么我们就认为它们是叶相似的。如果给定的两个头结点分别为root1和root2的树是叶相似的,则返回true;否则返回false。提示:给定...原创 2018-10-17 18:43:39 · 102 阅读 · 0 评论 -
leetcode 73. 矩阵置零-Set Matrix Zeroes
题目描述:给定一个mxn的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。示例1:输入: [ [1,1,1], [1,0,1], [1,1,1]]输出: [ [1,0,1], [0,0,0], [1,0,1]]示例2:输入: [ [0,1,2,0], [3,4,5,2], [1,3...原创 2018-10-23 21:51:53 · 163 阅读 · 0 评论 -
leetcode 203. Remove Linked List Elements
题目描述:Remove all elements from a linked list of integers that have valueval.Example:Input: 1->2->6->3->4->5->6, val = 6Output: 1->2->3->4->5代码:class Soluti...原创 2018-10-30 20:26:08 · 90 阅读 · 0 评论 -
leetcode 876. 链表的中间结点
题目描述:给定一个带有头结点head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val =...原创 2018-11-14 18:55:06 · 134 阅读 · 0 评论 -
leetcode 28. 实现strStr() (leetcode 2828. Implement strStr())--java KMP算法
题目描述:实现strStr()函数。给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回-1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa"...原创 2019-02-09 10:23:16 · 125 阅读 · 0 评论 -
leetcode 264. 丑数 II(动态规划)
题目描述:编写一个程序,找出第n个丑数。丑数就是只包含质因数2, 3, 5的正整数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前10个丑数。说明:1是丑数。 n不超过1690。 思路:动态规划思想。后面的丑数一定是由前面的丑数乘以2、3或5得到。所以第n个丑数一定是由前n...原创 2018-05-23 23:36:12 · 3373 阅读 · 0 评论 -
leetcode 77. Combinations(java)
题目描述:Given two integersnandk, return all possible combinations ofknumbers out of 1 ...n.Example:Input:n = 4, k = 2Output:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]代码...原创 2018-10-16 17:13:13 · 345 阅读 · 0 评论 -
leetcode 783. 二叉搜索树结点最小距离(递归和非递归实现java)
题目描述:给定一个二叉搜索树的根结点root, 返回树中任意两节点的差的最小值。示例:输入: root = [4,2,6,1,3,null,null]输出: 1解释:注意,root是树结点对象(TreeNode object),而不是数组。给定的树 [4,2,6,1,3,null,null] 可表示为下图: 4 / \ ...原创 2018-09-29 21:54:20 · 999 阅读 · 0 评论 -
leetcode 791. 自定义字符串排序
题目描述:字符串S和T只包含小写字符。在S中,所有字符只会出现一次。S已经根据某种规则进行了排序。我们要根据S中的字符顺序对T进行排序。更具体地说,如果S中x在y之前出现,那么返回的字符串中x也应出现在y之前。返回任意一种符合条件的字符串T。示例:输入:S = "cba"T = "abcd"输出: "cbad"解释: S中出现了字符 "a", "b", "c",...原创 2018-09-26 22:03:09 · 221 阅读 · 0 评论 -
leetcode 824. 山羊拉丁文
题目描述:给定一个由空格分割单词的句子 S。每个单词只包含大写或小写字母。我们要将句子转换为 “Goat Latin”(一种类似于 猪拉丁文 - Pig Latin 的虚构语言)。山羊拉丁文的规则如下:如果单词以元音开头(a, e, i, o, u),在单词后添加"ma"。 例如,单词"apple"变为"applema"。 如果单词以辅音字母开头(即非元音字母),移除第一个字符...原创 2018-09-10 17:38:50 · 145 阅读 · 0 评论 -
leetcode 696. 计数二进制子串(java动态规划法)
题目描述:给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。示例 1 :输入: "00110011"输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。请注意,一些重复出现的子串要计算它...原创 2018-09-10 21:10:47 · 276 阅读 · 0 评论