LeetCode
星星今天code了吗
这个作者很懒,什么都没留下…
展开
-
LeetCode 344:反转字符串(Java实现)
题目编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 示例 1: 输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”] 示例 2: 输入:...原创 2019-10-13 12:13:12 · 112 阅读 · 0 评论 -
LeetCode 292:Nim游戏(Java实现)
题目你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛;因为无论你拿走 1 块、2 块 还是 3 块石头,最...原创 2019-10-12 09:07:52 · 427 阅读 · 0 评论 -
LeetCode 237:删除链表中的节点(Java实现)
题目请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输...原创 2019-10-11 13:49:39 · 128 阅读 · 0 评论 -
LeetCode 236:二叉树的最近公共祖先(Java实现)
LeetCode 236:二叉树的最近公共祖先题目思路代码结果题目思路代码结果原创 2019-10-10 00:47:20 · 202 阅读 · 0 评论 -
LeetCode 235:二叉搜索树的最近公共祖先(Java实现)
LeetCode 235:二叉搜索树的最近公共祖先题目二叉搜索树(BST)的性质思路:递归代码结果题目给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root =...原创 2019-10-09 00:10:17 · 137 阅读 · 0 评论 -
LeetCode 124:二叉树中的最大路径和(Java实现)
LeetCode 124:二叉树中的最大路径和题目思路代码结果题目给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 / \ 2 3 输出: 6示例 2:输入: [-10,9,20,null,null,15,7] ...原创 2019-09-24 23:09:32 · 509 阅读 · 0 评论 -
LeetCode 122:买卖股票的最佳时机 II(Java实现)
LeetCode 122:买卖股票的最佳时机 II题目思路代码结果题目思路贪心算法代码结果原创 2019-09-23 08:42:38 · 587 阅读 · 0 评论 -
LeetCode 121:买卖股票的最佳时机(Java实现)
LeetCode 121:买卖股票的最佳时机题目思路1:暴力思路2:动态规划代码结果没成功的解法题目给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1: 输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时...原创 2019-09-22 10:44:27 · 297 阅读 · 0 评论 -
LeetCode 104:二叉树的最大深度(Java实现)
LeetCode 104:二叉树的最大深度题目思路代码结果题目给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 。来源:力扣(LeetCode)链接...原创 2019-09-21 23:53:41 · 154 阅读 · 0 评论 -
LeetCode 88:合并两个有序数组(Java实现)
LeetCode 88:合并两个有序数组题目思路1:库函数代码结果思路2:从后向前遍历数组代码结果题目给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2...原创 2019-09-19 21:07:33 · 178 阅读 · 0 评论 -
LeetCode 70:爬楼梯(Java实现)
LeetCode 70:爬楼梯题目思路1:动态规划代码结果思路2:数学,斐波那契题目假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1阶 + 1 阶2阶示例 2:输入: 3输出: 3解释: 有三种...原创 2019-09-17 18:43:16 · 565 阅读 · 0 评论 -
LeetCode 62:不同路径(Java实现)
LeetCode 62:不同路径题目思路1:数学方法直接算代码结果思路2:动态规划代码结果题目一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m 和 n 的值均不...原创 2019-09-16 17:26:38 · 216 阅读 · 0 评论 -
LeetCode 43:字符串相乘(Java实现)
LeetCode 43:字符串相乘题目思路代码结果题目思路代码结果原创 2019-09-09 16:10:46 · 249 阅读 · 0 评论 -
LeetCode 33:搜索旋转排序数组(Java实现)
LeetCode 33:搜索旋转排序数组题目思路代码结果题目假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n)级别。示例 1:...原创 2019-09-09 11:29:08 · 167 阅读 · 1 评论 -
LeetCode 26:删除排序数组中的重复项(Java实现)
LeetCode 26:删除排序数组中的重复项题目思路代码结果题目思路双指针法代码class Solution { public int removeDuplicates(int[] nums) { if(nums.length == 0) return 0; int j = 0; for(int i=0;i<nums.len...原创 2019-09-08 22:11:00 · 388 阅读 · 1 评论 -
LeetCode 21:合并两个有序链表(Java实现)
LeetCode 21:合并两个有序链表(Java实现)题目将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems...原创 2019-09-06 09:41:33 · 368 阅读 · 0 评论 -
LeetCode 20:有效的括号(Java实现)
LeetCode 20:有效的括号(Java实现)题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()” 输出: true示例 2:输入: “()[]{}” 输出: true示例 3:输入: “(]...原创 2019-09-05 20:59:16 · 203 阅读 · 0 评论 -
LeetCode 16:最接近的三数之和(Java实现)
LeetCode 16:最接近的三数之和(Java实现)题目给定一个包括 n 个整数的数组nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为2. (-1 + 2 + ...原创 2019-09-04 14:52:11 · 150 阅读 · 0 评论 -
LeetCode 15:三数之和(Java实现)
LeetCode 15:三数之和题目给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1] , [-1, -1, 2] ...原创 2019-09-03 22:18:32 · 166 阅读 · 0 评论 -
LeetCode 14:最长公共前缀(Java实现)
LeetCode 14:最长公共前缀(Java实现)题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”] 输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”] 输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。来源:力扣(...原创 2019-09-02 11:41:27 · 279 阅读 · 0 评论 -
LeetCode 11:乘最多水的容器(Java实现)
LeetCode 11:乘最多水的容器(Java实现)题目给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2...原创 2019-09-01 11:39:48 · 293 阅读 · 0 评论 -
LeetCode 09:回文数(Java实现)
LeetCode 09:回文数(Java实现)题目判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121 输出: true示例 2:输入: -121 输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10 输出: false解释: 从右向左读, 为 ...原创 2019-08-31 12:13:54 · 230 阅读 · 0 评论 -
LeetCode 08:字符串转换整数 (atoi)(Java实现)
LeetCode 08:字符串转换整数(atio)(Java实现)题目请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数...原创 2019-08-30 16:42:52 · 209 阅读 · 0 评论 -
LeetCode 07:整数反转(Java实现)
LeetCode 07:整数反转题目给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123 输出: 321示例 2:输入: -123 输出: -321示例 3:输入: 120 输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。...原创 2019-08-29 21:49:06 · 126 阅读 · 0 评论 -
LeetCode 05:最长回文子串(Java实现)
LeetCode 05:最长回文子串(Java实现)题目给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”来源:力扣(LeetCode)链接:https://leetcode-cn.com/problem...原创 2019-08-28 21:56:31 · 163 阅读 · 0 评论 -
LeetCode 04:寻找两个有序数组的中位数(Java实现)
LeetCode 04:寻找两个有序数组的中位数(Java实现)题目给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3],nums2 = [2],则中位数是 2.0示例 2:nums1 = [1, ...原创 2019-08-27 19:58:57 · 184 阅读 · 0 评论 -
LeetCode 02:两数相加(Java实现)
LeetCode 02:两数相加(JAVA实现)题目给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -&...原创 2019-08-26 20:34:33 · 198 阅读 · 0 评论