leetcode
ata_123
希望对大家有帮助,小白就只是记录,如有错处欢迎指正,随意转载
展开
-
鸡蛋掉落问题,leetcode 的1884和887
1、中等的,两枚鸡蛋,检测n层最少需要几步2、难的,k枚鸡蛋,检测n层最少需要几步理解:1枚鸡蛋,一步只能检测一层,p【1】[n]=n;一枚鸡蛋检测n层需要n部;2枚鸡蛋1步肯定也只能检测一层;p[2][1]=1;2步:一步,一枚鸡蛋换了,又变成一枚鸡蛋,一步了p[1][1]=1;一步没坏,就是p[2][1];同时验证了扔鸡蛋的这层;p[2][2]=p[1][1]+p[2][1]+1;以此类推k枚鸡蛋也是代码如下:中等的class Solution { pu原创 2021-07-16 11:21:14 · 281 阅读 · 0 评论 -
LeetCode 21 和23 合并链表
21合并两个有序链表 public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if(l1==null){ return l2; } if(l2==null){ return l1; } if(l2.val<l1.val){ ListNode t=l1; l1=l2原创 2021-07-12 15:50:16 · 202 阅读 · 0 评论 -
LeetCode130 被围绕的区域
题目:给你一个m x n的矩阵board,由若干字符'X'和'O',找到所有被'X'围绕的区域,并将这些区域里所有的'O'用'X'填充。输入:board = [["X","X","X","X"],["X","O","O","X"],["X","X","O","X"],["X","O","X","X"]]输出:[["X","X","X","X"],["X","X","X","X"],["X","X","X","X"],["X","O","X","X"]]解释:被围绕的区间不...原创 2021-07-08 21:09:09 · 256 阅读 · 0 评论 -
188. 买卖股票的最佳时机 IV 动态规划
给定一个整数数组prices ,它的第 i 个元素prices[i] 是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iv著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...原创 2021-06-18 14:02:04 · 181 阅读 · 0 评论 -
Leetcode 104、111 二叉树的最小深度和最大深度
题目:给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2.解决办法:public int minDepth(TreeN...原创 2018-07-24 20:42:00 · 282 阅读 · 0 评论 -
Leetcode 45 Jump Game II 跳跃游戏2 最好画一下图
题目:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例:输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳1步,然后跳3步到达数组的最后一个位置。这道题,直接想到的办法如下:但是运行时间有点儿长...原创 2018-07-06 22:15:23 · 663 阅读 · 0 评论 -
Leecode 105 Construct Binary Tree from Preorder and Inorder Traversal 根据前序、中序遍历构建二叉树
虽然算法不难,但是改进方案还是蛮多的,不太容易理解理解。题目:Given preorder and inorder traversal of a tree, construct the binary tree.Note:You may assume that duplicates do not exist in the tree.For example, givenpreo...原创 2018-07-24 21:43:07 · 171 阅读 · 0 评论 -
Leetcode 106 Construct Binary Tree from Inorder and Postorder Traversal 根据中序和后序构建二叉树
题目:Given inorder and postorder traversal of a tree, construct the binary tree.Note:You may assume that duplicates do not exist in the tree.For example, giveninorder =[9,3,15,20,7]postorder...原创 2018-07-24 22:24:56 · 132 阅读 · 0 评论 -
Leetcode 109 Convert Sorted List to Binary Search Tree 将一个list转换为平衡二叉树
如果做了108题,反而第一反应想把它zhu转换为arr,但其实这是不好的。题目如下:给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5]...原创 2018-07-19 16:35:00 · 187 阅读 · 0 评论 -
Leetcode 76 Minimum Window Substring 最小覆盖子串,最小移动窗口
这道题,刚开始拿到的时候,自己是没有思路的,然后自己尝试着去写,错的多了,也就有思路了,但是超时了,于是看看别人使用的什么办法。嘿嘿题目:给定一个字符串 S 和一个字符串 T,请在 S 中找出包含 T 所有字母的最小子串。示例:输入: S = "ADOBECODEBANC", T = "ABC"输出: "BANC"说明:如果 S 中不存这样的子串,则返回空字符串 ""。如果 S 中存在这样的子串...转载 2018-07-13 19:00:04 · 244 阅读 · 0 评论 -
Leetcode 113 Path Sum II 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径
题目:给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明:叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和sum = 22, 5 / \ 4 8 / / \ 11 13 4 /...原创 2018-07-24 20:11:12 · 3296 阅读 · 0 评论 -
Leetcode 129 Sum Root to Leaf Numbers 求根结点到叶子结点之和
题目如下:给定一个二叉树,它的每个结点都存放一个0-9的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径1->2->3代表数字123。计算从根到叶子节点生成的所有数字之和。说明:叶子节点是指没有子节点的节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 25解释:从根到叶子节点路径 1...原创 2018-07-24 19:42:35 · 136 阅读 · 0 评论 -
Leetcode 55 Jump Game 跳跃游戏,还是i和j的关系
题目:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例1:输入: [2,3,1,1,4]输出: true解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。示例2:输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳...原创 2018-07-06 19:50:05 · 181 阅读 · 0 评论 -
Leetcode 121 Best Time to Buy and Sell Stock 最好时机买与卖
这道题就是提个醒:有个运行时间更少的办法,减少不必要的循环次数。题目:Say you have an array for which theithelement is the price of a given stock on dayi.If you were only permitted to complete at most one transaction (i.e., buy one ...原创 2018-07-06 17:32:28 · 101 阅读 · 0 评论 -
Leetcode 100 Same Tree 给两个树,判断是否是同一个树
题目如下:Given two binary trees, write a function to check if they are the same or not.Two binary trees are considered the same if they are structurally identical and the nodes have the same value.E...原创 2018-07-24 11:30:39 · 112 阅读 · 0 评论 -
LeetCode 94、144、145 中序、前序、后序遍历的递归算法和非递归算法
在Java中list既可以实现栈,也可以实现队列。后序遍历的非递归算法,是难一点儿。前序遍历:递归算法:public class LC144Try1{ public List<Integer> preorderTraversal(TreeNode root) { List<Integer> arr=new ArrayList<Integer&g...原创 2018-07-24 11:28:00 · 220 阅读 · 0 评论 -
Leetcode 47 PermutationsII 全排列2,给定的几个数字是重复的,输出他们所有的排列
刚开始还觉得和90题蛮像的,但还是不一样的,受到46题的影响很容易走偏,其实人家就是简单的要活着不要,还有认为的加上规则,对于重复的数字,原本后面的一定要在原本前面的后面,对于重复的不能换位置。题目:Given a collection of numbers that might contain duplicates, return all possible unique permutat...原创 2018-07-18 10:30:04 · 395 阅读 · 0 评论 -
Leetcode 46 Permutations 全排列,给定不重复的几个数字,输出他们所有的排列
这道题的最简单的思路就是,我后面的在前面的基础上,从左到右依次换位置插入。题目:给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]我的较笨解决办法:package test;import ja...原创 2018-07-18 10:25:50 · 1100 阅读 · 0 评论 -
Leetcode 98 Validate Binary Search Tree 判断一个树是否为二叉搜索树(二叉排序树)
这里限制左右边界,不是简单的Integer.MaxValue,而是Long.MaxValue。当然也可以用中序排序,两个都可以。哈哈,还有逻辑符号,我也不经常使用。题目如下:给定一个二叉树,判断其是否是一个有效的二叉搜索树。一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。示例 1...原创 2018-07-23 16:06:04 · 176 阅读 · 0 评论 -
Leetcode 99 Recover Binary Search Tree 调整搜索二叉树的两个错误节点
其实应该想到,中序遍历正常的搜索二叉树,得到的是一个有序的二叉树,所以应当利用这一点。第一个错误节点为第一次降序较大的值,第二次错误节点为第二次降序较小的结点。题目如下:二叉搜索树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。示例1:输入: [1,3,null,null,2] 1 /3 \ 2输出: [3,1,null,nul...原创 2018-07-28 19:04:47 · 507 阅读 · 0 评论 -
Leetcode 114 Flatten Binary Tree to Linked List 把一个二叉树转换成一个链表
虽然我不知道这样出题的意义所在,但是这个题目z真心的让人理解错误,这道题其实关键就是右子树移到左子树,然后,左子树再移到右子树上。我刚开始就理解错了,不过这道题的递归算法,我觉得很精妙。题目如下:给定一个二叉树,原地将它展开为链表。例如,给定二叉树 1 / \ 2 5 / \ \3 4 6将其展开为:1 \ 2 \ ...原创 2018-07-28 20:09:50 · 153 阅读 · 0 评论 -
会场安排问题---贪心问题
这道题,看的别人的,最近自己很少静心想题了,转自:https://blog.csdn.net/shenshen123jun/article/details/9118875 先记录下。题目:描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办。小刘的工作就是安排学校小礼堂的活动,每个时间最多安排一个活动。现在小刘有一些活动计划的时间表,他想尽...转载 2018-09-20 11:19:21 · 298 阅读 · 0 评论 -
找到数组中N个乱序数组的第K大值
这道题,有很多办法,冒泡排序的前k趟,但是这样的时间复杂度比较大,还有基于快排,基于堆排序的基于快排的。其实Java中的Arrays.sort() 是基于的双轴快排,可以直接用。代码如下:package book;public class NFindKTry1{ public static int position(int arr[],int left,int right)...原创 2018-09-20 10:22:35 · 718 阅读 · 0 评论 -
Leetcode 43 Multiply Strings 字符串相乘,果然数学很重要。
这道题,解题思路参考的是这两个人的。https://blog.csdn.net/qq_14821023/article/details/50822207和https://blog.csdn.net/qq_32199531/article/details/52760362我觉得这个人的图很好:观看上图,它描述的是我们计算乘法的过程。仔细分析可以发现,对于原来在上面字符串中下标为1的“2”...转载 2018-08-10 17:02:38 · 260 阅读 · 0 评论 -
LeetCode 38.Count and Say (计数和发言)
这道题也是不容易理解,我也是参考的人家的:https://blog.csdn.net/xygy8860/article/details/46821417题目:The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...1 is read o...原创 2018-08-10 15:24:00 · 168 阅读 · 0 评论 -
Leetcode 71 Simplify Path 简化一个Unix风格下的文件的绝对路径
这道题,题意真的不好懂。我看的人家的:https://blog.csdn.net/makuiyu/article/details/44497901题目链接:Simplify PathGiven an absolute path for a file (Unix-style), simplify it.For example,path = "/home/", => "/home...转载 2018-08-10 15:21:09 · 1295 阅读 · 0 评论 -
Leetcode 236 Lowest Common Ancestor of a Binary Tree 两个节点的最近公共祖先
这道题,先序遍历,这个想到了,但是自己还是想麻烦了,还有一点bu'm不明白,我操作的不是地址吗,为什么还需要得到value值呢。这一点就是不明白。题目如下:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己...原创 2018-07-31 22:15:15 · 148 阅读 · 0 评论 -
Leetcode 110 Balanced Binary Tree 是不是平衡二叉树
题目:Given a binary tree, determine if it is height-balanced.For this problem, a height-balanced binary tree is defined as:a binary tree in which the depth of the two subtrees ofeverynode never...原创 2018-07-27 17:28:02 · 146 阅读 · 0 评论 -
Leetcode 124 Binary Tree Maximum Path Sum 二叉树中的最大路径和,这道题的思路我觉得是基于53题的基础上的
这道题貌似有点贪心的味道。还有就是同样的逻辑,人家的就写的简单明了,我写的就复杂了呢。题目如下:给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 6示例2:输入:...原创 2018-07-27 16:35:09 · 149 阅读 · 0 评论 -
Leetcode 101 Symmetric Tree 是否为对称二叉树,易错
题目如下:Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For example, this binary tree[1,2,2,3,4,4,3]is symmetric: 1 / \ 2 2 / \ / \3 4 ...原创 2018-07-26 21:50:20 · 155 阅读 · 0 评论 -
Leecode 102、103 Binary Tree Zigzag Level Order Traversal Z型层次遍历二叉树,外加正常的层次遍历
首先应当知道java中LinkedList既ke可以充当队列,也可充当栈。既让是Z型的话,选用LinkedListgeng更方便。题目如下:Given a binary tree, return thezigzag level ordertraversal of its nodes' values. (ie, from left to right, then right to left...原创 2018-07-26 21:15:06 · 266 阅读 · 0 评论 -
Leetcode 3 Longest Substring Without Repeating Characters 最长不重复子串
这道题还可以,可能做过移动窗口的题,就觉得这个和那个类似,就能想到。题目:Given a string, find the length of the longest substring without repeating characters.Examples:Given "abcabcbb", the answer is "abc", which the length is 3.Given "...原创 2018-07-16 09:01:13 · 123 阅读 · 0 评论 -
leetcode 85 Maximal Rectangle 在矩阵中找最大的矩形
如果一上来就拿到这道题可能没有思路,可以看完84题,再看这道题就有思路了。我自己看了别人的博客,讲的我是看的模糊,但是一旦自己做了84题,就简单明了了。我觉得人家讲的也可以:https://www.cnblogs.com/lupx/archive/2015/10/20/leetcode-85.html 看自己咋理解吧题目:Given a 2D binary matrix filled with 0...原创 2018-07-15 22:03:51 · 1002 阅读 · 0 评论 -
Leetcode 84 Largest Rectangle in Histogram 柱状图中最大矩形
这道题就是题目边界的确定:题目如下:给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。 示例:输入: [2,1,5,6,2,3]输出: 10我的解决办法如下:比较...原创 2018-07-15 21:56:25 · 218 阅读 · 0 评论 -
Leetcode 116、117 Populating Next Right Pointers in Each Node 填充同一层次兄弟节点,多种方法
题目:给定一个二叉树struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为NULL。初始状态下,所有next 指针都被设置为NULL。...原创 2018-07-28 22:36:03 · 159 阅读 · 0 评论 -
leetcode 107 Binary Tree Level Order Traversal II 从下到上的层次遍历
肯定要知道深度的,我不明白这个咋就变成easy的难度了。题目如下:Given a binary tree, return thebottom-up level ordertraversal of its nodes' values. (ie, from left to right, level by level from leaf to root).For example:Giv...原创 2018-07-28 21:17:39 · 130 阅读 · 0 评论 -
Leetcode 53 Maximum Subarray 最大子序和 还算数学吧
题目:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。思路:每次从后往前吧表示以i开头能获得最大子序列和,对于-5来说,是和4一起...原创 2018-07-11 19:33:02 · 114 阅读 · 0 评论 -
Leetcode 4 Median of Two Sorted Arrays 两个有序数组的中位数
这道题,根据时间复杂度的要求可以想到是利用mid值,但是怎么利用,还有就是奇偶的不同,我觉得还是人家的办法好,也就是这里的第二种办法。题目如下:给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。示例 1:nums1 = [1, 3]nums2 = [2]中位数是 2.0...原创 2018-07-23 14:13:25 · 268 阅读 · 0 评论 -
Leetcode 123 Best Time to Buy and Sell Stock III 买卖股票的最佳时机 蛮好的
这道题比较有意思,限制了购买次数2次,嗯,蛮好的。题目如下:给定一个数组,它的第i个元素是一支给定的股票在第i天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成两笔交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例1:输入: [3,3,5,0,0,3,1,4]输出: 6解释: 在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股...原创 2018-07-11 16:40:25 · 128 阅读 · 0 评论 -
LeetCode139:一个字符串是否由字典的中的字段一个或者多个拼接成。
这道题,我很伤心,因为我没有很好的思路,先说下我的递归吧,从开头匹配,applepen 则先匹配apple,然后用pen和字典在匹配,直到所有的可以匹配完。但这样迭代的浪费空间问题没有解决,在这里绊了一段时间,然后改进,时间是快了。题目如下:Given anon-emptystringsand a dictionarywordDictcontaining a list ofnon-e...原创 2018-04-28 18:37:17 · 1686 阅读 · 2 评论