
leetCode
RBreeze
卑鄙是卑鄙者的通行证,高尚是高尚者的墓志铭
展开
-
LeetCode——第53题:最大字段和
题目:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。代码;/** * @作者:dh...原创 2018-08-08 17:00:52 · 755 阅读 · 0 评论 -
LeetCode——第101题:对称二叉树
题目:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:1 / \ 2 2 \ \ 3 3说明:如果你可以运用递归和迭代两种方法...原创 2018-07-31 18:49:16 · 561 阅读 · 0 评论 -
LeetCode——第121题:买股票的最佳时机
题目:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 ...原创 2018-08-09 14:00:45 · 483 阅读 · 0 评论 -
LeetCode——第384题:打乱数组
参考题目:打乱一个没有重复元素的数组。示例:// 以数字集合 1, 2 和 3 初始化数组。 int[] nums = {1,2,3}; Solution solution = new Solution(nums);// 打乱数组 [1,2,3] 并返回结果。任何 [1,2,3]的排列返回的概率应该相同。 solution.shuffle();// 重设数组到它的...原创 2018-08-04 12:01:42 · 1313 阅读 · 0 评论 -
LeetCode——第155题:最小栈
题目:设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。 pop() – 删除栈顶的元素。 top() – 获取栈顶元素。 getMin() – 检索栈中的最小元素。示例:MinStack minStack = new MinStack(); minStack.push(-2); minStack....原创 2018-08-04 09:57:03 · 1419 阅读 · 0 评论 -
LeetCode——第237题: 删除链表中的节点
题目:请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:4 -> 5 -> 1 -> 9示例 1:输入: head = [4,5,1,9], node = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函...原创 2018-07-23 09:20:16 · 321 阅读 · 0 评论 -
LeetCode——第268题:缺失的数字
题目:给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。示例 1:输入: [3,0,1] 输出: 2示例 2:输入: [9,6,4,2,3,5,7,0,1] 输出: 8说明:你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?代码:/** * @作者:dhc * @创建...原创 2018-08-04 09:03:07 · 437 阅读 · 0 评论 -
LeetCode——第38题:数数并说(报数)
题目:报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:111211211111221 1 被读作 “one 1” (“一个一”) , 即 11。 11 被读作 “two 1s” (“两个一”), 即 21。 21 被读作 “one 2”, “one 1” (”一个二” , “一个一”) , 即 1211。给定一个正整数 n ...原创 2018-07-22 19:37:48 · 1009 阅读 · 0 评论 -
LeetCode——第242题:有效的字母异位词
题目:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。示例 1:输入: s = “anagram”, t = “nagaram” 输出: true示例 2:输入: s = “rat”, t = “car” 输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么...原创 2018-07-22 17:35:40 · 1145 阅读 · 0 评论 -
LeetCode——第14题:最长公共子串
题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,”flow”,”flight”] 输出: “fl”示例 2:输入: [“dog”,”racecar”,”car”] 输出: “” 解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。 代码:pack...原创 2018-07-22 17:15:46 · 1612 阅读 · 0 评论 -
LeetCode——第48题:旋转图像
不会做转载的:原博客题目:给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ],原地旋转输入矩阵,使其变为: [ [...转载 2018-07-22 16:48:35 · 555 阅读 · 0 评论 -
LeetCode——第198题:验证二叉搜索树
题目:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3 输出: true 示例 2:输入: 5 / \ 1 4 ...原创 2018-07-31 18:50:40 · 1757 阅读 · 0 评论 -
LeetCode——第108题:将有序数组转化为二叉搜索树
题目:将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树:0 / \ -3 9 / ...原创 2018-07-31 20:26:32 · 1059 阅读 · 0 评论 -
LeetCode——第88题:合并两个有序数组
题目:给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入: nums1 = [1,2,3,0,0,0], m = ...原创 2018-07-31 20:57:34 · 419 阅读 · 0 评论 -
LeetCode——第70题:爬楼梯
题目:假设你正在爬楼梯。需要 n 步你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 步 + 1 步 2. 2 步示例 2:输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1. 1 步 + ...原创 2018-08-08 14:03:03 · 397 阅读 · 0 评论 -
LeetCode——第461题:汉明距离
题目:两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0 ≤ x, y < 231.示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。...原创 2018-08-01 22:28:55 · 950 阅读 · 0 评论 -
LeetCode——第204题:计数质数
题目:两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0 ≤ x, y < 231.示例:输入: x = 1, y = 4输出: 2解释: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。代码...原创 2018-08-01 22:20:53 · 311 阅读 · 0 评论 -
LeetCode——第191题:位1的个数
参考链接题目:编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例 :输入: 11 输出: 3 解释: 整数 11 的二进制表示为 00000000000000000000000000001011示例 2:输入: 128 输出: 1 解释: 整数 128 的二进制表示为 0000000000000000...原创 2018-08-01 21:58:33 · 1290 阅读 · 0 评论 -
LeetCode——第118题:帕斯卡三角形(杨辉三角)
题目:给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]代码:import java.util.ArrayList;import ja...原创 2018-08-01 20:55:50 · 718 阅读 · 0 评论 -
LeetCode——第20题:有效的括号
题目:给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。示例 1:输入: “()” 输出: true示例 2:输入: “()[]{}” 输出: true示例 3:输入: “(]” ...原创 2018-08-01 19:35:59 · 306 阅读 · 0 评论 -
LeetCode——第204题:计数质数
题目:统计所有小于非负整数 n 的质数的数量。示例:输入: 10 输出: 4 解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。代码:/** * @作者:dhc * @创建时间:13:39 2018/8/1 * @描述:204.计数质数 */public class TwoHundredAndFour { //埃氏筛法:对...原创 2018-08-01 14:02:13 · 301 阅读 · 0 评论 -
LeetCode——第326题:3的幂
题目:给定一个整数,写一个函数来判断它是否是 3 的幂次方。示例 1:输入: 27 输出: true示例 2:输入: 0 输出: false示例 3:输入: 9 输出: true示例 4:输入: 45 输出: false 进阶: 你能不使用循环或者递归来完成本题吗?代码://递归public boolean isPowerOfT...原创 2018-08-01 09:44:42 · 864 阅读 · 0 评论 -
LeetCode——第412题:Fizz Buzz
题目:写一个程序,输出从 1 到 n 数字的字符串表示。如果 n 是3的倍数,输出“Fizz”;如果 n 是5的倍数,输出“Buzz”;3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。示例:n = 15,返回: [ “1”, “2”, “Fizz”, “4”, “Buzz”, “Fizz”...原创 2018-08-01 08:40:29 · 605 阅读 · 0 评论 -
LeetCode——第287题:第一个错误版本
题目:你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测...原创 2018-07-31 21:22:08 · 552 阅读 · 0 评论 -
LeetCode——第190题:颠倒二进制位
题目:颠倒给定的 32 位无符号整数的二进制位。示例:输入: 43261596 输出: 964176192 解释: 43261596 的二进制表示形式为 00000010100101000001111010011100 , 返回 964176192,其二进制表示形式为 00111001011110000010100101000000 。 进阶: 如果多次调用这个...原创 2018-08-03 19:31:15 · 3438 阅读 · 0 评论 -
LeetCode——第125题:验证回文字符串
题目:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama” 输出: true示例 2:输入: “race a car” 输出: false代码:package leetCode;/** ...原创 2018-07-21 15:40:09 · 399 阅读 · 0 评论 -
LeetCode——第8题:字符串转整数
题目:实现 atoi,将字符串转为整数。在找到第一个非空字符之前,需要移除掉字符串中的空格字符。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有影响。当字符串中的第...原创 2018-07-21 11:21:32 · 347 阅读 · 0 评论 -
LeetCode——第136题:只出现一次的数
题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1] 输出: 1示例 2:输入: [4,1,2,1,2] 输出: 4代码:package leetCode;/** * 2018.7...原创 2018-07-19 10:41:03 · 486 阅读 · 1 评论 -
LeetCode——第二十六题:删除排序数组中的重复数字
题目:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示...原创 2018-07-19 09:55:44 · 337 阅读 · 0 评论 -
LeetCode——第21题:合并两个有序链表
题目:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4代码:package leetCode;import leetCode.TwoHundredAndThirtyFour.List...原创 2018-07-24 19:28:48 · 368 阅读 · 0 评论 -
LeetCode——第十三题:罗马数字转整数
题目:罗马数字包含以下七种字符:I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ...原创 2018-07-18 21:29:37 · 468 阅读 · 1 评论 -
LeetCode——第九题:回文数
题目:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121 输出: true示例 2:输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10 输出: false 解释: 从右向左读, 为 01 。...原创 2018-07-18 20:44:23 · 287 阅读 · 0 评论 -
LeetCode——第234题:回文链表
题目:请判断一个链表是否为回文链表。示例 1:输入: 1->2 输出: false示例 2:输入: 1->2->2->1 输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?进阶思考:反转再比较,反转用头插法。代码:package leetCode;import java.ut...原创 2018-07-23 18:36:40 · 484 阅读 · 0 评论 -
LeetCode——第206题:反转链表
题目:反转一个单链表。示例:输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?代码:package leetCode;import leetCode.Nineteen.ListNode;...原创 2018-07-23 11:14:55 · 573 阅读 · 0 评论 -
LeetCode——第19题:删除链表的倒数第N个节点
题目:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1-&gt;2-&gt;3-&gt;4-&gt;5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1-&gt;2-&gt;3-&gt;5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?代码:package leetCode;原创 2018-07-23 10:16:18 · 260 阅读 · 0 评论 -
LeetCode——第七题:反转整数
题目给定一个 32 位有符号整数,将整数中的数字进行反转。注意:范围溢出,返回0。示例输入: 123 输出: 321输入: -123 输出: -321输入: 120 输出: 21代码自己写的。惨不忍睹,不知道什么玩意儿。public static int reverse(int x) { boolean flag = x &lt; 0; ...原创 2018-05-14 22:37:38 · 279 阅读 · 0 评论 -
leetCode——第二题:两数相加
题目给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807思路依次遍历两个链表,将...原创 2018-05-13 19:02:11 · 1134 阅读 · 0 评论 -
LeetCode——第189题:旋转数组
题目:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: ...原创 2018-07-19 11:34:27 · 500 阅读 · 0 评论 -
LeetCode——第335题:数组交集II
题目:给定两个数组,写一个方法来计算它们的交集。例如:给定 nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2].注意:输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。 我们可以不考虑输出结果的顺序。跟进:如果给定的数组已经排好序呢?你将如何优化你的算法? 如果 nums1 的大小比 nums...原创 2018-07-19 15:26:16 · 298 阅读 · 0 评论 -
LeetCode——第66题:加1
题目:给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输...原创 2018-07-19 20:01:38 · 401 阅读 · 0 评论