
【算法】---LeetCode
程序员小川
主攻Java后端、JavaWeb,爱折腾。个人微信公众号:「程序员小川」
展开
-
【算法】LeetCode算法题-Roman To Integer
这是悦乐书的第145次更新,第147篇原创今天这道题和罗马数字有关,罗马数字也是可以表示整数的,如“I”表示数字1,“IV”表示数字4,下面这道题目就和罗马数字有关,你能猜到吗?01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第4题(顺位题号是17),给定一组罗马数字组成的字符串,将其转换为整数。罗马数字包含下面7个字符:符号 值I 1V ...原创 2018-10-18 08:46:04 · 194 阅读 · 0 评论 -
【算法】LeetCode算法题-Reverse Integer
这是悦乐书的第143次更新,第145篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第2题(顺位题号是7),给定32位有符号整数,然后将其反转输出。例如:输入: 123输出: 321输入: -123输出: -321输入: 120输出: 21给定反转整数范围: [−2^31, 2^31 − 1],即在int的最小值、最大值之间,如果反转整数超过...原创 2018-10-16 09:00:44 · 376 阅读 · 0 评论 -
【算法】LeetCode算法题-Longest Common Prefix
这是悦乐书的第146次更新,第148篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第5题(顺位题号是14),给定一个随机的字符串数组,查找这些字符串元素的公共前缀字符串,如果没有则返回空串。其中,字符串数组中的元素都是由小写字母a-z之间随机组合而成。例如:输入:[“flower”,“flow”,“flight”]输出:“fl”输入: [“dog”,“ra...原创 2018-10-19 08:43:57 · 266 阅读 · 0 评论 -
【算法】LeetCode算法题-Palindrome Number
这是悦乐书的第144次更新,第146篇原创今天这道题和回文有关,即从前往后和从后往前是一样的,如“上海自来水来自海上”就是一个回文字符串,如整数121就是回文数,这些都是和回文相关的。01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第3题(顺位题号是9),给定一个整数,判断其是否为回文整数,即向前读和向后读的整数一样。输入: 121输出: true输入: -12...原创 2018-10-17 08:45:29 · 280 阅读 · 0 评论 -
【算法】LeetCode算法题-Valid Parentheses
这是悦乐书的第147次更新,第149篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第6题(顺位题号是20),给定一个只包含字符’(’,’)’,’{’,’}’,’[‘和’]'的字符串,确定输入字符串是否有效。输入的字符串必须使用相同类型的括号关闭左括号,并且以正确的顺序关闭左括号。如果输入空串,返回true。例如:输入: “()”输出: true输入: “(...原创 2018-10-20 11:01:55 · 174 阅读 · 0 评论 -
【算法】LeetCode算法题-Implement strStr
这是悦乐书的第151次更新,第153篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第10题(顺位题号是28)。给定两个任意字符串haystack、needle,返回haystack中第一次出现needle的索引,如果needle不是haystack的一部分,则返回-1。如果needle为空串,则返回0。例如:输入:haystack =“hello”,needle ...原创 2018-10-25 08:14:09 · 137 阅读 · 0 评论 -
【算法】LeetCode算法题-Maximum Subarray
这是悦乐书的第154次更新,第156篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第13题(顺位题号是53)。给定一个整数数组nums,找出一个最大和,此和是由数组中索引连续的元素组成,至少包含一个元素。例如:输入:[-2, 1, -3, 4, -1, 2, 1, -5,4]输出:6说明:[4,-1,2,1]具有最大的和为6输入:[1, 2, 3]输出...原创 2018-10-28 09:03:45 · 256 阅读 · 0 评论 -
【算法】LeetCode算法题-Remove Duplicates from Sorted Array
这是悦乐书的第149次更新,第151篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第8题(顺位题号是26)。给定一个已经排序(由小到大)的整数数组(元素可以重复),计算其中不重复元素的个数n,并将数组的前n个元素依次赋值为筛选后的不重复元素。不许使用新数组接收数据。例如:nums = {1,1,2}输出不重复元素的个数为2数组前2个元素为1和2,即nums =...原创 2018-10-23 08:04:44 · 150 阅读 · 0 评论 -
【算法】LeetCode算法题-Merge Two Sorted List
这是悦乐书的第148次更新,第150篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第7题(顺位题号是21)。合并两个已排序的链表并将其作为新链表返回。 新链表应该通过拼接前两个链表的节点来完成。例如:链表L1包含三个节点,为1,2,4链表L2包含三个节点,为1,3,4将L1和L2合并后的新链表包含6个节点,为1,1,2,3,4,4本次解题使用的开发工具是e...原创 2018-10-21 21:52:46 · 210 阅读 · 0 评论 -
【算法】LeetCode算法题-Length Of Last Word
这是悦乐书的第155次更新,第157篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第14题(顺位题号是58)。给定一个字符串,包含戴尔字母、小写字母和空格,返回最后一个单词的长度,如果最后一个单词不存在则返回0。另外,单词不包含空格。例如:输入: “Hello World”输出: 5说明:最后一个单词为world,其长度为5本次解题使用的开发工具是ecl...原创 2018-10-29 08:15:29 · 169 阅读 · 0 评论 -
【算法】LeetCode算法题-Search Insert Position
这是悦乐书的第152次更新,第154篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第11题(顺位题号是35)。给定排序数组和目标值,如果找到目标,则返回索引。 如果没有,请返回索引按顺序插入的索引。假设数组中没有重复项。例如:输入:[1,3,5,6],5输出:2输入:[1,3,5,6],2输出:1输入:[1,3,5,6],7输出:4输入:[...原创 2018-10-26 08:13:43 · 161 阅读 · 0 评论 -
LeetCode算法题-Add Binary(Java实现)
这是悦乐书的第157次更新,第159篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第16题(顺位题号是67)。给定两个二进制字符串,返回它们的总和(也是二进制字符串)。输入字符串都是非空的,只包含字符1或0。 例如:输入:a =“11”,b =“1”输出:“100”输入:a =“1010”,b =“1011”输出:“10101”本次解题使用的开发工具...原创 2018-10-31 08:00:07 · 145 阅读 · 0 评论 -
【算法】LeetCode算法题-Remove Element
这是悦乐书的第150次更新,第152篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第9题(顺位题号是27)。给定整数数组nums和值val,删除nums中所有的val值,元素顺序可以改变,返回删除val值后数组的长度。不能使用新数组接收数据。例如:给定数组nums = {3,2,2,3}, val = 3你的函数应返回length = 2其中nums的前两个元...原创 2018-10-24 08:23:14 · 162 阅读 · 0 评论 -
LeetCode算法题-Plus One(Java实现)
这是悦乐书的第156次更新,第158篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第15题(顺位题号是66)。给定一个非空数字数组来表示一个非负整数,并给其加1。该数组已经排序,并且最高位有效数字位于数组的开头,并且数组中的每个元素都表示单个数字。假设该整数不以零开头,除了数字0本身。例如:输入:[1,2,3]输出:[1,2,4]说明:数组表示整数123...原创 2018-10-30 08:03:55 · 204 阅读 · 0 评论 -
【算法】LeetCode算法题-Count And Say
这是悦乐书的第153次更新,第155篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第12题(顺位题号是38)。count-and-say序列是整数序列,前五个术语如下:1112112111112211被读作“一个一”或者11。第二项的值是第一项的读法。11被读作“两个一”或者21。第三项的值是第二项的读法。21被读作“一个二,两...原创 2018-10-27 15:30:36 · 231 阅读 · 0 评论 -
LeetCode算法题-Sqrt(Java实现)
这是悦乐书的第158次更新,第160篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第17题(顺位题号是69)。 计算并返回x的平方根,其中x保证为非负整数。 由于返回类型是整数,因此将截断十进制数字,并仅返回结果的整数部分。例如:输入:4输出:2输入:8输出:2说明:8的平方根是2.82842 …,从2以后小数部分被截断,返回2本次解题使用的开发工...原创 2018-11-01 08:14:30 · 260 阅读 · 0 评论 -
LeetCode算法题-Remove Duplicates from Sorted List
这是悦乐书的第160次更新,第162篇原创01 前情回顾昨晚的爬楼梯算法题,有位朋友提了个思路,使用动态规划算法。介于篇幅问题,这里不细说动态规划算法,以后会在数据机构和算法的理论知识里细说。昨晚的三个解法中,根据测试数据和结果,第三种解法是最优的,但是还能不能更进一步呢?经过推导,我们得知当n大于等于3的时候,f(n) = f(n-1)+f(n-2),也就是说我们只需要得到n的前面两位的...原创 2018-11-03 10:00:10 · 168 阅读 · 0 评论 -
LeetCode算法题-Symmetric Tree(Java实现)
这是悦乐书的第163次更新,第165篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第22题(顺位题号是101)。给定二叉树,检查它是否是自身的镜像(即,围绕其中心对称)。例如,这个二叉树[1,2,2,3,4,4,3]是对称的: 1 / \ 2 2 / \ / \ 3 4 4 3但是以下[1,2,2,null,3,n...原创 2018-11-06 08:24:08 · 202 阅读 · 0 评论 -
LeetCode算法题-Convert Sorted Array to Binary Search Tree(Java实现)
这是悦乐书的第166次更新,第168篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第25题(顺位题号是108)。给定一个数组,其中元素按升序排序,将其转换为高度平衡的二叉搜索树。例如:给定排序数组:[ -10,-3, 0, 5, 9]一个可能的答案是:[0,-3, 9,-10,null,5],它代表以下高度平衡的二叉搜索树: 0 / ...原创 2018-11-09 08:19:41 · 166 阅读 · 0 评论 -
LeetCode算法题-Climbing Stairs(Java实现)
这是悦乐书的第159次更新,第161篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第18题(顺位题号是70)。你正在爬楼梯,它需要n步才能达到顶峰。每次你可以爬1或2步,你可以通过多少不同的方式登顶?注意:给定n是一个正整数。例如:输入:2输出:2说明:有两种方法可以爬到顶端1、1步 + 1步2、2步输入:3输出:3说明:有三种方法可以爬到顶...原创 2018-11-02 08:12:58 · 163 阅读 · 0 评论 -
LeetCode算法题-Merge Sorted Array(Java实现)
这是悦乐书的第161次更新,第163篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第20题(顺位题号是88)。给定两个排序的整数数组nums1和nums2,将nums2中的元素合并到nums1中,并且作为一个排序的数组。在nums1和nums2中初始化的元素个数分别为m和n。假设nums1有足够的空间(大于或等于m + n)来保存nums2中的其他元素。例如:输...原创 2018-11-04 08:53:15 · 158 阅读 · 0 评论 -
LeetCode算法题-Maximum Depth of Binary Tree
这是悦乐书的第164次更新,第166篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第23题(顺位题号是104)。给定二叉树,找到它的最大深度。最大深度是从根节点到最远叶节点的最长路径上的节点数。叶子是没有子节点的节点。例如:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7...原创 2018-11-07 08:19:35 · 165 阅读 · 0 评论 -
LeetCode算法题-Pascal's Triangle(Java实现)
这是悦乐书的第170次更新,第172篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第29题(顺位题号是118)。给定非负整数numRows,生成Pascal三角形的第一个numRows。例如:输入: 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]本次解题使用的开发工具是eclipse,jdk使用的版本是...原创 2018-11-12 21:44:33 · 111 阅读 · 0 评论 -
LeetCode算法题-Same Tree(Java实现)
这是悦乐书的第162次更新,第164篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第21题(顺位题号是100)。给定两个二叉树,编写一个函数来检查它们是否相同。如果两个二叉树在结构上相同并且节点具有相同的值,则认为它们是相的。例如:输入: 1 1 / \ / \ 2 3 2 3[1,2,3],[1,2,3]输出:t...原创 2018-11-05 08:22:34 · 154 阅读 · 0 评论 -
LeetCode算法题-Binary Tree Level Order Traversal II(Java实现)
这是悦乐书的第165次更新,第167篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第24题(顺位题号是107)。给定二叉树,返回其节点值的自下而上级别顺序遍历(即从左到右,逐层逐层)。例如:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自下而上的级别顺序遍历:[[...原创 2018-11-08 08:18:36 · 174 阅读 · 0 评论 -
LeetCode算法题-Balanced Binary Tree(Java实现)
这是悦乐书的第167次更新,第169篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第26题(顺位题号是110)。给定二叉树,判断它是否是高度平衡的。对于此问题,高度平衡二叉树定义为:一个二叉树,其中每个节点的两个子树的深度从不相差超过1。例如:给定以下树[3,9,20,null,null,15,7]: 3 / \ 9 ...原创 2018-11-11 17:39:45 · 150 阅读 · 0 评论 -
LeetCode算法题-Minimum Depth of Binary Tree(Java实现)
这是悦乐书的第168次更新,第170篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第27题(顺位题号是111)。给定二叉树,找到它的最小深度。最小深度是沿从根节点到最近的叶节点的最短路径上的节点数。叶子节点是没有子节点的节点。例如:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 ...原创 2018-11-11 21:59:14 · 816 阅读 · 0 评论 -
LeetCode算法题-Pascal's Triangle II(Java实现)
这是悦乐书的第171次更新,第173篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第30题(顺位题号是119)。给定非负索引k,其中k≤33,返回Pascal三角形的第k个索引行。行索引从0开始。在Pascal的三角形中,每个数字是它上面两个数字的总和。例如:输入: 2输出: [1,2,1]输入: 3输出: [1,3,3,1]本次解题使用的开发工具...原创 2018-11-14 08:09:12 · 188 阅读 · 0 评论 -
LeetCode算法题-Path Sum(Java实现)
这是悦乐书的第169次更新,第171篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第28题(顺位题号是112)。给定二叉树和整数sum,确定树是否具有根到叶路径,使得沿路径的所有值相加等于给定的sum。叶子节点是没有子节点的节点。例如:给定以下二叉树和sum = 22, 5 / \ 4 8...原创 2018-11-12 10:12:39 · 205 阅读 · 0 评论 -
LeetCode算法题-Best Time to Buy and Sell Stock II
这是悦乐书的第173次更新,第175篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第32题(顺位题号是122)。假设有一个数组,其中第i个元素是第i天给定股票的价格。设计算法以找到最大利润。可以根据需要完成尽可能多的交易(即,多次买入并卖出一股股票)。注意:不能同时进行多笔交易(即,您必须在再次购买之前卖出股票)。例如:输入:[7,1,5,3,6,4]输出...原创 2018-11-16 08:19:30 · 371 阅读 · 0 评论 -
LeetCode算法题-Intersection of Two Linked Lists(Java实现)
这是悦乐书的第178次更新,第180篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第37题(顺位题号是160)。编写程序以找到两个单链表交叉的节点。例如:以下两个链表:A: a1→a2 &原创 2018-11-21 08:15:20 · 157 阅读 · 0 评论 -
LeetCode算法题-Linked List Cycle(Java实现)
这是悦乐书的第176次更新,第178篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第35题(顺位题号是141)。给定一个链表,确定它是否有一个循环。本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试。02 理解题意什么样结构的链表才算是拥有一个循环呢?链表中某一节点的引用指向了当前链表中...原创 2018-11-19 08:25:11 · 243 阅读 · 0 评论 -
LeetCode算法题-Best Time to Buy and Sell Stock
这是悦乐书的第172次更新,第174篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第31题(顺位题号是121)。假设有一个数组,其中第i个元素是第i天给定股票的价格。如果只被允许完成最多一笔交易(即买入并卖出一股股票),请设计算法以找到最大利润。请注意,在购买之前不能出售股票。例如:输入:[7,1,5,3,6,4]输出:5说明:在第2天买入(价格= 1)并...原创 2018-11-15 08:12:45 · 142 阅读 · 0 评论 -
LeetCode算法题-Two Sum II - Input array is sorted
这是悦乐书的第179次更新,第181篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第38题(顺位题号是167)。给定已按升序排序的整数数组,找到两个数字,使它们相加到特定的目标数。函数twoSum应该返回两个数字的索引,使它们加起来到目标,其中index1必须小于index2。注意:返回的答案(index1和index2)不是从零开始的。可以假设每个输...原创 2018-11-22 08:13:22 · 128 阅读 · 0 评论 -
LeetCode算法题-Valid Palindrome(Java实现)
这是悦乐书的第174次更新,第176篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第33题(顺位题号是125)。给定一个字符串,确定它是否是回文,只考虑字母数字字符并忽略大小写。空字符串是有效回文。例如:输入:“A man, a plan, a canal: Panama”输出:true输入:“race a car”输出:false本次解题使用的开...原创 2018-11-17 10:07:27 · 240 阅读 · 0 评论 -
LeetCode算法题-Majority Element(Java实现)
这是悦乐书的第181次更新,第183篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第40题(顺位题号是169)。给定大小为n的数组,找到数组中出现次数超过n/2的元素。假设该数组非空,并且该元素始终存在于数组中。例如:输入:[3,2,3]输出:3输入:[2,2,1,1,1,2,2]输出:2本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环...原创 2018-11-24 09:38:21 · 141 阅读 · 0 评论 -
LeetCode算法题-Min Stack(Java实现)
这是悦乐书的第177次更新,第179篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第36题(顺位题号是155)。设计一个支持push,pop,top和在恒定时间内检索最小元素的堆栈。push(x) - 将元素x推入堆栈。pop() - 删除堆栈顶部的元素。top() - 获取顶部元素。getMin() - 检索堆栈中的最小元素。例如:MinStack m...原创 2018-11-20 08:16:34 · 173 阅读 · 0 评论 -
LeetCode算法题-Single Number(Java实现)
这是悦乐书的第175次更新,第177篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第34题(顺位题号是136)。给定一个非空的整数数组,除了一个元素外,每个元素都会出现两次。 找到那个只出现了一次的元素。例如:输入:[2,2,1]输出:1输入:[4,1,2,1,2]输出:4本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是wi...原创 2018-11-18 08:43:14 · 135 阅读 · 0 评论 -
LeetCode算法题-Excel Sheet Column Title(Java实现)
这是悦乐书的第180次更新,第182篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第39题(顺位题号是168)。给定正整数,返回Excel工作表中显示的相应列标题。例如:1 - > A.2 - > B.3 - > C.26 - > Z.27 - > AA28 - > AB输入:1输出:“A”输入:28输出:“...原创 2018-11-23 08:15:51 · 185 阅读 · 0 评论 -
LeetCode算法题-Factorial Trailing Zeroes(Java实现)
这是悦乐书的第183次更新,第185篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第42题(顺位题号是172)。给定一个整数n,返回n!中的尾随零数。例如:输入:3输出:0说明:3! = 6,没有尾随零。输入:5输出:1说明:5! = 120,一个尾随零。本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用...原创 2018-11-26 08:15:03 · 149 阅读 · 0 评论