![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
江河里的鱼
穷且益坚,不坠青云之志,虚心学习,虚心请教!
展开
-
leetcode-53. 最大子序和 力扣 Java版本
最近在做回溯现在又在做dp的题还是专项去做才有效果些。给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。 后面在专项...原创 2019-10-22 20:55:11 · 163 阅读 · 0 评论 -
leetcode-16 力扣 java版本
给定一个包括n 个整数的数组nums和 一个目标值target。找出nums中的三个整数,使得它们的和与target最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).本题与15题大体思路差不多,只是这个...原创 2019-08-13 09:16:50 · 102 阅读 · 0 评论 -
leetcode-18 力扣 java版本
给定一个包含n 个整数的数组nums和一个目标值target,判断nums中是否存在四个元素 a,b,c和 d,使得a + b + c + d的值与target相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组...原创 2019-08-17 09:59:53 · 168 阅读 · 0 评论 -
leetcode-374猜数字大小 力扣 Java版本
我们正在玩一个猜数字游戏。 游戏规则如下:我从1到n选择一个数字。 你需要猜我选择了哪个数字。每次你猜错了,我会告诉你这个数字是大了还是小了。你调用一个预先定义好的接口guess(int num),它会返回 3 个可能的结果(-1,1或 0):-1 : 我的数字比较小1 : 我的数字比较大0 : 恭喜!你猜对了!示例 :输入: n = 10, pick...原创 2019-09-02 14:34:00 · 515 阅读 · 0 评论 -
leetcode-20. 有效的括号 力扣 Java版本
给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: false...原创 2019-09-03 15:38:08 · 92 阅读 · 0 评论 -
leetcode-503 力扣 Java版本
给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。示例 1:输入: [1,2,1]输出: [2,-1,2]解释: 第一个 1 的下一个更大的数是 2;数字 2 找不到下一个更大的数;第二...原创 2019-09-04 16:10:46 · 189 阅读 · 0 评论 -
leetcode-461. 汉明距离 力扣 Java版本
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0 ≤ x, y < 231.示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。class Sol...原创 2019-09-05 10:07:22 · 87 阅读 · 0 评论 -
leetcode-453. 最小移动次数使数组元素相等 力扣 Java版本
给定一个长度为 n 的非空整数数组,找到让数组所有元素相等的最小移动次数。每次移动可以使 n - 1 个元素增加 1。示例:输入:[1,2,3]输出:3解释:只需要3次移动(注意每次移动会增加两个元素的值):[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]本题思路;看移动次数,并且在int型,还有n个数...原创 2019-09-06 16:37:54 · 104 阅读 · 0 评论 -
leetcode-1108. IP 地址无效化 力扣 Java版本
给你一个有效的 IPv4 地址address,返回这个 IP 地址的无效化版本。所谓无效化IP 地址,其实就是用"[.]"代替了每个 "."。示例 1:输入:address = "1.1.1.1"输出:"1[.]1[.]1[.]1"示例 2:输入:address = "255.100.50.0"输出:"255[.]100[.]50[.]0"思路:本题...原创 2019-09-08 09:59:36 · 212 阅读 · 0 评论 -
leetcode-547. 朋友圈,力扣 java版本
班上有N名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B的朋友,B 是 C的朋友,那么我们可以认为 A 也是 C的朋友。所谓的朋友圈,是指所有朋友的集合。给定一个N * N的矩阵M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道。你必须输出所有学生中的已知的朋友圈总数。...原创 2019-09-13 17:09:52 · 302 阅读 · 0 评论 -
leetcode22. 括号生成 力扣 java版本
给出n代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]package leetcode;import java.util.ArrayList;import java.util...原创 2019-09-17 15:58:48 · 114 阅读 · 0 评论 -
leetcode23. 合并K个排序链表 力扣 Java版本
合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6用容量为K的最小堆优先队列,把链表的头结点都放进去,然后出当前优先队列中最小的值,挂上链表,,然后让出队的那...原创 2019-09-18 16:14:26 · 85 阅读 · 0 评论 -
leetcode-25. K 个一组翻转链表 力扣 Java版本
给你一个链表,每k个节点一组进行翻转,请你返回翻转后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。示例 :给定这个链表:1->2->3->4->5当k= 2 时,应当返回: 2->1->4->3->5当k= 3 时,应当返回: 3->...原创 2019-09-23 10:02:17 · 110 阅读 · 0 评论 -
leetcode-55. 跳跃游戏 力扣 Java版本
给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例1:输入: [2,3,1,1,4]输出: true解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。实例二输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引为 3 的位置...原创 2019-09-26 15:51:29 · 167 阅读 · 0 评论 -
leetcode-26. 删除排序数组中的重复项,力扣 Java版本
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例2:...原创 2019-09-30 11:12:53 · 91 阅读 · 0 评论 -
leetcode-32. 最长有效括号 力扣 java版本
给定一个只包含 '('和 ')'的字符串,找出最长的包含有效括号的子串的长度。示例1:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()"package leetcode;import java.util.Stack;/** * @author 江河...原创 2019-10-06 15:19:15 · 149 阅读 · 0 评论 -
leetcode-120. 三角形最小路径和 力扣 java版本
给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为11(即,2+3+5+1= 11)。说明:如果你可以只使用 O(n)的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很加分。...原创 2019-10-07 17:05:54 · 392 阅读 · 2 评论 -
leetcode-17 力扣 java版本
给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。 public List&l...原创 2019-08-14 19:15:31 · 222 阅读 · 0 评论 -
leetcode-15 力扣 java版本
给定一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]思路:主要体现双指...原创 2019-08-09 15:18:31 · 133 阅读 · 0 评论 -
leetcode-11 力扣 Java版本
给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(...原创 2019-07-27 20:32:18 · 112 阅读 · 0 评论 -
100.相同树(leetcode) java代码
给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: 1 ...原创 2019-05-14 11:31:22 · 113 阅读 · 0 评论 -
leetcode:102. 二叉树的层次遍历 java版
题目描述如下:给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]/** * Definition for a...原创 2019-05-18 09:42:02 · 402 阅读 · 0 评论 -
leetcode-103. 二叉树的锯齿形层次遍历--java版本
给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层次遍历如下:[ [3], [20,9], [15,7]/** * Defin...原创 2019-05-28 11:20:05 · 207 阅读 · 0 评论 -
leetcode: 92. 反转链表 II--java版本
反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤m≤n≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL/** * Definition for singly-linked list. * ...原创 2019-06-09 11:29:30 · 139 阅读 · 0 评论 -
leetcode:104. 二叉树的最大深度--java版本
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度3 。本题有两种思路:1.递归找出左右最大深度再对比得出最大的二叉树深度。2.层...原创 2019-06-04 09:59:02 · 198 阅读 · 0 评论 -
leetcode-141. 环形链表--Java版本
给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例2:输入:head = [1,2], pos = 0输出:t...原创 2019-06-21 09:22:45 · 74 阅读 · 0 评论 -
leetcode—142. 环形链表 II--java版本
给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node inde...原创 2019-06-21 20:24:49 · 77 阅读 · 0 评论 -
leetcode-5 java版本
回文的定义:正读和反读都相同的字符序列为“回文”,如“abcba”、“abcccba”是“回文”,“abcdea”和“ababab”则不是“回文”,也大体指具有对称性的。字符串的最长回文子串,是指一个字符串中包含的最长的回文子串。例如“1212134”的最长回文子串是“12121”。由上面我们理解到回文的定义后,我们可以来分析用啥算法来解决这个问题:假设只有一个变量则一定是回文字符串;...翻译 2019-07-07 21:11:05 · 92 阅读 · 0 评论 -
leetcode--6 java版本
如题:将一个给定字符串根据给定的行数,以从上往下、从左到右进行Z 字形排列。比如输入字符串为 "LEETCODEISHIRING"行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。请你实现这个将字符串进行指定行数变...原创 2019-07-09 14:15:36 · 78 阅读 · 0 评论 -
leetcode-7 java版本
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231,231− 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。分析: ...原创 2019-07-10 14:43:00 · 90 阅读 · 0 评论 -
leetcode-8 java版本
请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可...原创 2019-07-15 19:39:43 · 237 阅读 · 0 评论 -
leetcode-9 java版本
开始自己刷来二十来道一般是看别人代码自己缕思路在敲,现在是多逼逼自己去思考怎么做,即使暴力做出来的,感觉效果还不错哦。思路更清楚了,对java一些基本用法更明朗了。判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 ...原创 2019-07-18 10:53:16 · 137 阅读 · 0 评论 -
leetcode-10 java版本
每天给自己独立思考做一些题,日积月累就会有进步,建议大家独立的思考做了,在参考别人的思路给你一个字符串s和一个字符规律p,请你来实现一个支持 '.'和'*'的正则表达式匹配。'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。说明:s可能为空,且只包含从a-z的小写字母。p可能为空,且只包...原创 2019-07-19 15:52:13 · 114 阅读 · 0 评论 -
leetcode-12 力扣 java版本
趁自己有空多刷刷题,即使是自己暴力解出来的,但是是通过自己独立思考的,时间长了会有很大进步。罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 50...原创 2019-07-29 12:37:07 · 112 阅读 · 0 评论 -
leetcode-13 力扣 java版本
罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1。1...原创 2019-07-30 14:41:58 · 198 阅读 · 0 评论 -
leetcode-14 力扣 Java版本
这次自己想的这个方法本身出发点是好的,就是没有找到合适的表达方式,结果导致逻辑不严谨,有很多bug,补了好多漏洞。题意如下:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""...原创 2019-08-01 14:56:19 · 135 阅读 · 0 评论 -
leetcode:101. 对称二叉树Java实现版
给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[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/***本题开始的思路是找出对称的树,故采用...原创 2019-05-15 19:02:18 · 243 阅读 · 0 评论