Leetcode
waS_TransvolnoS
写过两行bug,尘世间一个迷途小码农。
展开
-
从零单刷Leetcode(JAVA描述)——118. 杨辉三角
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/pascals-triangle著作权归领扣...原创 2019-09-10 12:29:00 · 153 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)—— 557. 反转字符串中的单词 III
链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入: “Let’s take LeetCode contest”输出: “s’teL ekat edoCteeL tsetnoc”注意:在字符串中,每个单词由...原创 2019-07-17 13:55:51 · 126 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)—— 237. 删除链表中的节点
链接:https://leetcode-cn.com/problems/delete-node-in-a-linked-list请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释:...原创 2019-07-24 09:25:54 · 87 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)—— 59. 螺旋矩阵 II
链接:https://leetcode-cn.com/problems/spiral-matrix-ii给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ]]//其实思路和Leetcode 54差不多,就是按规律遍历,要细心一点,我也改...原创 2019-07-12 16:32:06 · 116 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)—— 54. 螺旋矩阵
链接:https://leetcode-cn.com/problems/spiral-matrix给定一个包含 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, ...原创 2019-07-12 15:28:00 · 113 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——169. 求众数(超过数组长度一半的元素)
链接:https://leetcode-cn.com/problems/majority-element给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2//使用HashMap实...原创 2019-07-07 15:14:15 · 169 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)—— 33. 搜索旋转排序数组
链接:https://leetcode-cn.com/problems/search-in-rotated-sorted-array假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的...原创 2019-07-11 18:05:53 · 157 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)—— 231. 2的幂
链接:https://leetcode-cn.com/problems/power-of-two给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: false//挺常规的,注意下特殊情况就好,开始看到以为是递归或者动态...原创 2019-07-11 17:36:51 · 179 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)—— 136. 只出现一次的数字
链接:https://leetcode-cn.com/problems/single-number给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4//第一次的思...原创 2019-07-11 10:51:26 · 105 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)—— 88. 合并两个有序数组
链接:https://leetcode-cn.com/problems/merge-sorted-array给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums...原创 2019-07-11 10:29:45 · 133 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)—— 70. 爬楼梯
链接:https://leetcode-cn.com/problems/climbing-stairs假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出: 3解...原创 2019-07-11 09:30:11 · 109 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——217. 存在重复元素
链接:https://leetcode-cn.com/problems/contains-duplicate给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1...原创 2019-07-05 13:22:05 · 191 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——142. 环形链表 II
链接:https://leetcode-cn.com/problems/linked-list-cycle-ii给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head...原创 2019-07-05 11:16:40 · 138 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——61. 旋转链表
链接:https://leetcode-cn.com/problems/rotate-list给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5-&g...原创 2019-07-05 11:09:37 · 112 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)—— 292. Nim 游戏
链接:https://leetcode-cn.com/problems/nim-game你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false解释: 如果堆中有 4...原创 2019-07-17 14:02:18 · 115 阅读 · 0 评论 -
剑指offer:51.构建乘积数组 && 从零单刷Leetcode(JAVA描述)—— 238. 除自身以外数组的乘积
题目描述给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。import java.util.ArrayList;public class Solution { public int[] multiply(int[] A) { int n=...原创 2019-07-25 09:26:32 · 238 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——235. 二叉搜索树的最近公共祖先
链接:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-search-tree给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是...原创 2019-07-30 16:58:11 · 104 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——146. LRU缓存机制
运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最近最少使用的数...原创 2019-09-05 20:20:43 · 167 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——122. 买卖股票的最佳时机 II
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获...原创 2019-09-05 20:14:53 · 505 阅读 · 1 评论 -
从零单刷Leetcode(JAVA描述)——82. 删除排序链表中的重复元素 II
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2->3来源:力扣(LeetCode)链接:https://leetcode-cn.com...原创 2019-09-05 17:10:31 · 221 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——83. 删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicates-from-sor...原创 2019-09-05 11:49:44 · 148 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——24. 两两交换链表中的节点
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs著作权归领扣网络所有。...原创 2019-09-05 11:01:49 · 262 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——137. 只出现一次的数字 II
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,3,2]输出: 3示例 2:输入: [0,1,0,1,0,1,99]输出: 99来源:力扣(LeetCode)链接:https://leetcode-cn.com/problem...原创 2019-09-05 09:42:42 · 196 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——144. 二叉树的前序遍历
给定一个二叉树,返回它的 前序 遍历。示例:输入: [1,null,2,3]12/3输出: [1,2,3]进阶: 递归算法很简单,你可以通过迭代算法完成吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-preorder-traversal著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请...原创 2019-09-05 09:24:12 · 128 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——145. 二叉树的后序遍历
给定一个二叉树,返回它的 后序 遍历。示例:输入: [1,null,2,3]12/3输出: [3,2,1]进阶: 递归算法很简单,你可以通过迭代算法完成吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-postorder-traversal著作权归领扣网络所有。商业转载请联系官方授权,非商业转载...原创 2019-09-05 09:19:57 · 198 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——19. 删除链表的倒数第N个节点
链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n ...原创 2019-09-04 21:42:02 · 190 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——230. 二叉搜索树中第K小的元素
链接:https://leetcode-cn.com/problems/kth-smallest-element-in-a-bst给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。示例 1:输入: root = [3,1,4,null,2], k = 13/ 1 4...原创 2019-08-05 11:10:21 · 216 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——46. 全排列
链接:https://leetcode-cn.com/problems/permutations给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]//思路:回溯法class Solution { public List<...原创 2019-08-05 10:48:25 · 150 阅读 · 0 评论 -
剑指Offer:38.二叉树的深度 && 从零单刷Leetcode(JAVA描述)—— 104. 二叉树的最大深度
题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { ...原创 2019-07-21 19:40:35 · 181 阅读 · 0 评论 -
剑指Offer:36.两个链表的第一个公共结点 && 从零单刷Leetcode(JAVA描述)—— 160. 相交链表
题目描述输入两个链表,找出它们的第一个公共结点。/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*///直接比就完事了public class Solution { public Li...原创 2019-07-21 19:25:35 · 117 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——141. 判断链表是否有环
链接:https://leetcode-cn.com/problems/linked-list-cycle给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个...原创 2019-07-05 10:56:23 · 290 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——215. 数组中的第K个最大元素
链接:https://leetcode-cn.com/problems/kth-largest-element-in-an-array在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5...原创 2019-07-05 09:51:15 · 192 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——27. 移除元素
链接:https://leetcode-cn.com/problems/remove-element给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = ...原创 2019-06-20 20:34:15 · 122 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——17. 电话号码的字母组合
链接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd...原创 2019-06-16 17:16:51 · 152 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——16. 最接近的三数之和
链接:https://leetcode-cn.com/problems/3sum-closest给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个...原创 2019-06-16 17:14:13 · 127 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——1.two-sum
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]这道题在我面试猫眼电影...原创 2019-06-04 15:47:03 · 112 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——8.String to Integer (atoi)
请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽...原创 2019-06-04 15:39:54 · 87 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——14. 最长公共前缀
链接:https://leetcode-cn.com/problems/longest-common-prefix编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公...原创 2019-06-14 20:58:19 · 125 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——13. 罗马数字转整数
链接:https://leetcode-cn.com/problems/roman-to-integer罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D ...原创 2019-06-14 16:40:34 · 111 阅读 · 0 评论 -
从零单刷Leetcode(JAVA描述)——12. 整数转罗马数字
链接:https://leetcode-cn.com/problems/integer-to-roman罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D ...原创 2019-06-14 15:43:19 · 127 阅读 · 0 评论