Leetcode
用于Leetcode
ZZUJULIAN
欢迎交流
展开
-
归并排序--逐渐简洁
每当看到简洁的代码时,我都一头雾水,,,只好先翻译成我能理解的幼儿园水平。放一个超级好理解的博主的讲解https://www.cnblogs.com/chengxiao/p/6194356.html递归+分治package sort;import com.sun.xml.internal.fastinfoset.util.CharArrayIntMap;public class MergeSortTest { private static void mergeSort(i.原创 2020-06-21 14:14:09 · 121 阅读 · 0 评论 -
167. 两数之和 II - 输入有序数组 Leetcode Java
//给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 //// 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。 //// 说明: //// // 返回的下标值(index1 和 index2)不是从零开始的。 // 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。 // //// 示例: //// 输入: numbers = [2, 7, 11, 15], target = 9.原创 2020-06-18 09:45:50 · 136 阅读 · 0 评论 -
704. 二分查找 Leetcode Java
//给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否//则返回 -1。 //// //示例 1: //// 输入: nums = [-1,0,3,5,9,12], target = 9//输出: 4//解释: 9 出现在 nums 中并且下标为 4// //// 示例 2: //// 输入: nums = [-1,0,3,5,9,12], target = 2//输出: .原创 2020-06-18 09:34:51 · 175 阅读 · 0 评论 -
19. 删除链表的倒数第 n 个节点 Leetcode Java
//给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 //// 示例: //// 给定一个链表: 1->2->3->4->5, 和 n = 2.////当删除了倒数第二个节点后,链表变为 1->2->3->5.// //// 说明: //// 给定的 n 保证是有效的。 //// 进阶: //// 你能尝试使用一趟扫描实现吗? // Related Topics 链表 双指针//leetcode submit.原创 2020-06-18 09:24:02 · 123 阅读 · 0 评论 -
876. 链表的中间节点 Leetcode Java
//给定一个带有头结点 head 的非空单链表,返回链表的中间结点。 //// 如果有两个中间结点,则返回第二个中间结点。 //// //// 示例 1: //// 输入:[1,2,3,4,5]//输出:此列表中的结点 3 (序列化形式:[3,4,5])//返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。//注意,我们返回了一个 ListNode 类型的对象 ans,这样://ans.val = 3, ans.next.val = 4, ans.next..原创 2020-06-18 09:22:09 · 93 阅读 · 0 评论 -
142. 环形链表2 Leetcode Java
//给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 //// 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 //// 说明:不允许修改给定的链表。 //// //// 示例 1: //// 输入:head = [3,2,0,-4], pos = 1//输出:tail connects to node index 1//解释:链表中有一个环,其尾部连接到.原创 2020-06-18 09:20:44 · 121 阅读 · 0 评论 -
141.环形链表 Leetcode Java
//给定一个链表,判断链表中是否有环。 //// 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 //// //// 示例 1: //// 输入:head = [3,2,0,-4], pos = 1//输出:true//解释:链表中有一个环,其尾部连接到第二个节点。// //// //// 示例 2: //// 输入:head = [1,2], pos = 0//输出:tr.原创 2020-06-18 09:19:36 · 98 阅读 · 0 评论 -
739. 每日温度 Leetcode Java
题目:请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用0 来代替。例如,给定一个列表temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是[1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是[1, 30000]。每个气温的值的均为华氏度,都是在[30, 100]范围内的整数。解题思路:利用栈和数组...原创 2020-06-11 20:12:59 · 147 阅读 · 0 评论 -
5. 最长回文子串 Leetcode Java
class Solution { public String longestPalindrome(String s) { String ans=""; int max=0; //substring(i,j) //i 起始索引-包括 for(int i=0;i<s.length();i++){ //j 结束索引 不包括 for (int j=i+1;j<=s.l.原创 2020-05-21 16:45:54 · 125 阅读 · 0 评论 -
627. 交换工资 Leetcode Mysql
题目:给定一个salary表,如下所示,有 m = 男性 和 f = 女性 的值。交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求只使用一个更新(Update)语句,并且没有中间的临时表。注意,您必只能写一个 Update 语句,请不要编写任何 Select 语句。例如:| id | name | sex | salary ||----|------|-----|--------|| 1 | A | m | 2500 || 2 | B ...原创 2020-05-19 22:32:56 · 128 阅读 · 0 评论 -
144. 前序遍历 Leetcode Java
题目:给定一个二叉树,返回它的前序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,2,3]进阶:递归算法很简单,你可以通过迭代算法完成吗?递归法:public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; }}cla...原创 2020-05-12 14:58:41 · 173 阅读 · 0 评论 -
105. 从前序与中序遍历序列构造二叉树 Leetcode Java
public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; }}class Solution { private int[] preorder; private int[] inorder; private int preindex = 0; Map<Integer, Integer&.原创 2020-05-12 10:10:43 · 155 阅读 · 0 评论 -
104. 二叉树的最大深度 Leetcode Java
题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度3 。区别DFS和BFS的不是栈和队列,而是在访问一个结点的时候是只把它相邻的下一个结点压进去还是把它相邻的所有节点压进去递归法:DFS(深度优先搜索)一头扎到底public ...原创 2020-05-12 10:11:18 · 151 阅读 · 0 评论 -
103. 二叉树的锯齿形层次遍历 Leetcode Java
给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层次遍历如下:[ [3], [20,9], [15,7]]代码实现:import ja...原创 2020-05-12 10:19:03 · 179 阅读 · 0 评论 -
102. 二叉树的层序遍历 Leetcode Java
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]代码实现:public class TreeNode...原创 2020-05-12 10:20:10 · 164 阅读 · 0 评论 -
101. 对称二叉树 Leetcode 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进阶:你可以运用递归和迭...原创 2020-05-12 10:53:16 · 111 阅读 · 0 评论 -
98. 验证二叉搜索树 Leetcode Java
题目:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。public class TreeNode { int val; TreeNode left; TreeNode right; T...原创 2020-05-12 11:52:16 · 95 阅读 · 0 评论 -
96. 不同的二叉搜索树 Leetcode Java
题目:给定一个整数 n,求以1 ...n为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 ...原创 2020-05-12 10:20:56 · 119 阅读 · 0 评论 -
95. 不同的二叉搜索树 II Leetcode Java
给定一个整数 n,生成所有由 1 ...n 为节点所组成的二叉搜索树。示例:输入: 3输出:[[1,null,3,2],[3,2,null,1],[3,1,null,null,2],[2,1,3],[1,null,2,null,3]]解释:以上的输出对应以下 5 种不同结构的二叉搜索树: 1 3 3 2 ...原创 2020-05-12 12:37:30 · 136 阅读 · 0 评论 -
94. 二叉树的中序遍历 Leetcode java
题目:给定一个二叉树,返回它的中序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶:递归算法很简单,你可以通过迭代算法完成吗?import java.util.ArrayList;import java.util.List;/** * Definition for a binary ...原创 2020-05-12 14:09:01 · 236 阅读 · 0 评论 -
887. 鸡蛋掉落 Leetcode Java
题目:你将获得K个鸡蛋,并可以使用一栋从1到N共有 N层楼的建筑。每个蛋的功能都是一样的,如果一个蛋碎了,你就不能再把它掉下去。你知道存在楼层F ,满足0 <= F <= N 任何从高于 F的楼层落下的鸡蛋都会碎,从F楼层或比它低的楼层落下的鸡蛋都不会破。每次移动,你可以取一个鸡蛋(如果你有完整的鸡蛋)并把它从任一楼层X扔下(满足1...原创 2020-04-29 09:42:49 · 167 阅读 · 0 评论 -
322. 零钱兑换 Leetcode Java
题目:给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。示例1:输入: coins = [1, 2, 5], amount = 11输出: 3解释: 11 = 5 + 5 + 1示例 2:输入: coins = [2], amount = 3输出: -1...原创 2020-04-27 17:20:45 · 113 阅读 · 0 评论 -
509. 斐波那契数列 Leetcode Java
class Solution { public int fib(int N) { /* int[] dp = new int[N + 1]; dp[0] = 0; //base case if(N>0) dp[1]= 1; for (int i = 2; i <= N; i++) { ...原创 2020-05-05 15:06:50 · 200 阅读 · 0 评论 -
438. 找到字符串中所有字母异位词 Leetcode Java
題目:给定一个字符串s和一个非空字符串p,找到s中所有是p的字母异位词的子串,返回这些子串的起始索引。字符串只包含小写英文字母,并且字符串s和 p的长度都不超过 20100。说明:字母异位词指字母相同,但排列不同的字符串。不考虑答案输出的顺序。示例1:输入:s: "cbaebabacd" p: "abc"输出:[0, 6]解释:起始索引等...原创 2020-05-05 16:24:56 · 279 阅读 · 0 评论 -
567. 字符串的排列 Leetcode Java
class Solution { public boolean checkInclusion(String s1, String s2) { if (s1.length() == 0 || s2.length() == 0) return false; Map<Character, Integer> need = new HashMap<...原创 2020-05-05 16:32:14 · 233 阅读 · 0 评论 -
76. 最小覆盖子串 Leetcode Java
//给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串。 //// 示例: //// 输入: S = "ADOBECODEBANC", T = "ABC"//输出: "BANC" //// 说明: //// // 如果 S 中不存这样的子串,则返回空字符串 ""。 // 如果 S 中存在这样的子串,我们保证它是唯一的答案。 // ...原创 2020-04-22 16:57:16 · 224 阅读 · 0 评论 -
48. 旋转图像 Leetcode Java
题目:给定一个 n×n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix =[ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9...原创 2020-04-21 15:03:26 · 230 阅读 · 0 评论 -
39. 组数之和 Leetcode Java
题目:给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。解集不能包含重复的组合。示例1:输入: candidates = [2,3,6,7], target = 7,所...原创 2020-04-19 23:01:20 · 148 阅读 · 0 评论 -
34. 在排序数组中查找元素的第一个和最后一个位置 Java Leetcode 常规解法
题目:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是O(log n) 级别。如果数组中不存在目标值,返回[-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例2:输入: nums = [5,7,7,8,8...原创 2020-04-13 22:28:09 · 209 阅读 · 0 评论 -
31. 下一个排列 Java Leetcode
题目:实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1思路:1.首先理解字典序的含义:在数学...原创 2020-04-12 12:11:27 · 170 阅读 · 0 评论 -
33. 搜索旋转排序数组 Java Leetcode
题目:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,1,2,4,5,6,7]可能变为[4,5,6,7,0,1,2])。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回-1。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是O(logn) 级别。思路:1.根据时间复杂度判断此题需要用二分搜索法。...原创 2020-04-12 12:02:52 · 103 阅读 · 0 评论 -
11. 盛最多水的容器 Leetcode Java实现
题目:给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。有两种方法:方法一:暴力法把所有出现的情况全部走一遍,找出最大面积。pu...原创 2020-04-08 23:22:40 · 202 阅读 · 0 评论 -
3. 无重复字符的最长子串 Leetcode Java
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。package com.plat.acoal.leetcode;import java.util.HashMap;import java.util.HashSet;import java.util.Map;import java.util.Set;public class LengthOfLongestsSubst...原创 2020-03-28 16:37:31 · 176 阅读 · 0 评论 -
2. 两数相加 Leetcode Java
package com.plat.acoal.leetcode;public class Twoadd { static class ListNode{ int val; ListNode next; ListNode(int x){ val=x; } } static clas...原创 2020-03-28 16:32:17 · 163 阅读 · 0 评论 -
1. 两数之和 Leetcode Java
package com.plat.acoal.leetcode;import java.util.Arrays;import java.util.HashMap;import java.util.Map;import java.util.stream.Stream;public class TwoNumberSum { static class Solution{ ...原创 2020-03-27 23:59:11 · 124 阅读 · 0 评论