
leetcode
下雨了_简
这个作者很懒,什么都没留下…
展开
-
java无重复字符的最长子串
题目给定一个字符串,找出不含有重复字符的最长子串的长度。示例:给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。给定 "pwwkew" ,最长子串是 "wke" ,长度是3。请注意答案必须是一个子串,"pwke" 是 子序列 而不是子串。分析原创 2018-07-24 10:53:29 · 6383 阅读 · 2 评论 -
最小路径和(Minimum Path Sum)java_leetcode64
最小路径和(Minimum Path Sum)java_leetcode64题干给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。解析这是动...原创 2018-11-10 11:31:13 · 308 阅读 · 0 评论 -
三角形最小路径和(Triangle)java_leetcode120
三角形最小路径和(Triangle)java_leetcode120题目给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。说明:如果你可以只使用 O(n) 的额...原创 2019-01-19 10:58:37 · 614 阅读 · 1 评论 -
不同路径 II(Unique Paths II)java_leetcode63
不同路径 II(Unique Paths II)java_leetcode63题目一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 ...原创 2019-01-19 17:48:16 · 350 阅读 · 0 评论 -
两数之和 II - 输入有序数组(Two Sum II - Input array is sorted)java_leetcode167
两数之和 II - 输入有序数组(Two Sum II - Input array is sorted)java_leetcode167题干给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。...原创 2019-01-23 08:45:31 · 289 阅读 · 0 评论 -
分割数组的最大值(Split Array Largest Sum)java_leetcode 410
分割数组的最大值(Split Array Largest Sum)java_leetcode 410题干给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。注意:数组长度 n 满足以下条件:1 ≤ n ≤ 10001 ≤ m ≤ min(50, n)示例:输入:nums = [7,2,5,10...原创 2019-01-23 11:50:57 · 884 阅读 · 1 评论 -
二叉树的层次遍历(Binary Tree Level Order Traversal)java_leetcode 102
二叉树的层次遍历(Binary Tree Level Order Traversal)java_leetcode 102题干给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7],3/ \9 20 / \15 7返回其层次遍历结果:[ [3], [9,20], [...原创 2019-05-10 15:10:01 · 412 阅读 · 0 评论 -
先序遍历构造二叉树(Construct Binary Search Tree from Preorder Traversal)java_leetcode 1008
先序遍历构造二叉树(Construct Binary Search Tree from Preorder Traversal)java_leetcode 1008题干返回与给定先序遍历 preorder 相匹配的二叉搜索树(binary search tree)的根结点。(回想一下,二叉搜索树是二叉树的一种,其每个节点都满足以下规则,对于 node.left 的任何后代,值总 < ...原创 2019-05-20 18:12:21 · 408 阅读 · 0 评论 -
比特位计数(Counting Bits)java_leetcode 338
比特位计数(Counting Bits)java_leetcode 338题干给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]进阶:给出时间复杂度为O(n*sizeof(integer))的...原创 2019-05-20 22:29:42 · 579 阅读 · 0 评论 -
二叉搜索树中第K小的元素(Kth Smallest Element in a BST)java_leetcode230
二叉搜索树中第K小的元素(Kth Smallest Element in a BST)java_leetcode230题干给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。示例 1:输入: root = [3,1,4,null,2], k = 1 3 / \...原创 2019-05-13 09:01:47 · 500 阅读 · 0 评论 -
反转链表 II(Reverse Linked List II)java_leetcode_92
反转链表 II(Reverse Linked List II)java_leetcode_92题干反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤ m ≤ n ≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL...原创 2019-07-23 09:26:56 · 390 阅读 · 0 评论 -
K 个一组翻转链表(Reverse Nodes in k-Group)java_leetcode25
K 个一组翻转链表(Reverse Nodes in k-Group)java_leetcode25题干给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例 :给定这个链表:1->2->3->4->5当 k = 2 时,应...原创 2019-07-23 09:35:55 · 633 阅读 · 0 评论 -
跳跃游戏(Jump Game)leetcode-java
跳跃游戏(Jump Game)leetcode-java题干给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出:...原创 2018-11-04 10:27:12 · 767 阅读 · 0 评论 -
Z字形变换( ZigZag Conversion)java
Z字形变换( ZigZag Conversion)java题干将字符串 "PAYPALISHIRING" 以Z字形排列成给定的行数:P A H NA P L S I I GY I R之后从左往右,逐行读取字符:"PAHNAPLSIIGYIR"实现一个将字符串进行指定行数变换的函数:string convert(string s, int numRows...原创 2018-10-10 11:12:39 · 1061 阅读 · 0 评论 -
零钱兑换(Coin Change)java
零钱兑换(Coin Change)java题干给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例 1:输入: coins = [1, 2, 5], amount = 11输出: 3 解释: 11 = 5 + 5 + 1示例 2:输入: coins = [2],...原创 2018-10-08 13:17:37 · 4374 阅读 · 0 评论 -
打家劫舍(House Robber)java
打家劫舍(House Robber)题干你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释:...原创 2018-07-28 22:29:07 · 1467 阅读 · 2 评论 -
使用最小花费爬楼梯(Min Cost Climbing Stairs)java
使用最小花费爬楼梯(Min Cost Climbing Stairs)题干数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例 1:...原创 2018-07-29 08:30:46 · 883 阅读 · 0 评论 -
电话号码的字母组合(Letter Combinations of a Phone Number)java
电话号码的字母组合(Letter Combinations of a Phone Number)题干给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。(数字和英文字母的映射和手机电话相同,无图)示例:输入:"23"输出:["ad", "ae", "af", "bd", "be&quo原创 2018-07-29 08:51:03 · 2192 阅读 · 0 评论 -
最长回文子串(Longest Palindromic Substring)java
最长回文子串(Longest Palindromic Substring)题干给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。分析这个题就是得到最大的回文子串,那么,大致分为两步得到所有字串判断回文所谓的优化也是对这两步进行优化而已 对于这个题呢,我首先想到的就是暴破,也这么做了,结果提交的时候在leetcode上超时,好嘛...原创 2018-07-27 10:45:28 · 233 阅读 · 0 评论 -
不同路径(UniquePaths)java
不同路径(UniquePaths)题干分析这道题使用动态规划去写。分析题意发现,机器人只能向下或向右走,那么,说明:对于当前位置,机器人最多只有两条来的路:从左边来,或者从上边来。那么到当前位置的路线数就是从左边来的路数与从上面来的路数之和。 它的动态规划方程就是:arr[i][j] = arr[i - 1][j] + arr[i][j - 1];代码 publ...原创 2018-07-30 21:47:44 · 566 阅读 · 0 评论 -
两句话中的不常见单词(Uncommon Words from Two Sentences)java
两句话中的不常见单词(Uncommon Words from Two Sentences)java题干给定两个句子 A 和 B 。 (句子是一串由空格分隔的单词。每个单词仅由小写字母组成。)如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。返回所有不常用单词的列表。您可以按任何顺序返回列表。示例 1:输入:A = "this a...原创 2018-08-14 20:08:51 · 912 阅读 · 2 评论 -
螺旋矩阵(Spiral Matrix)java
螺旋矩阵(Spiral Matrix)java题干给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例 2:输入:[ [1, 2, 3, 4], [5, ...原创 2018-08-15 08:45:01 · 1997 阅读 · 0 评论 -
爬楼梯(Climbing Stairs)java
爬楼梯(Climbing Stairs)java题干假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可...原创 2018-08-18 16:12:12 · 677 阅读 · 0 评论 -
合并区间(Merge Intervals)java
合并区间(Merge Intervals)java题干给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]. 示例 2:输入: [[1,4],[4,5]] 输出: [[1,5...原创 2018-08-24 22:20:46 · 5844 阅读 · 2 评论 -
棒球比赛(Baseball Game)java
棒球比赛(Baseball Game)java题干你现在是棒球比赛记录员。给定一个字符串列表,每个字符串可以是以下四种类型之一:1.整数(一轮的得分):直接表示您在本轮中获得的积分数。2. "+"(一轮的得分):表示本轮获得的得分是前两轮有效 回合得分的总和。3. "D"(一轮的得分):表示本轮获得的得分是前一轮有效 回合得分的两倍。4. "C"(一个操作,这不是一个回合..原创 2018-08-25 16:53:49 · 539 阅读 · 0 评论 -
二叉树的最大深度(Maximum Depth of Binary Tree)java
二叉树的最大深度(Maximum Depth of Binary Tree)java题干给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大...原创 2018-08-25 16:58:55 · 1333 阅读 · 0 评论 -
删除链表的倒数第N个节点(Remove Nth Node From End of List)java_leetcode19
删除链表的倒数第N个节点(Remove Nth Node From End of List)java_leetcode19题干给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n ...原创 2019-07-23 13:38:15 · 430 阅读 · 0 评论