- 博客(150)
- 收藏
- 关注
原创 LeetCode第105题:从前序与中序遍历序列构造二叉树(中等)
LeetCode第105题:从前序与中序遍历序列构造二叉树(中等)题目:根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素解题思路:用前序找到根节点,再用中序找到相等的为根,再找到对应的子叶节点。再用递归把各节点连接起来。但是,没捋明白怎么递归。。。有了以下半成品。class Solution { TreeNode ans = new TreeNode(); TreeNode left = new TreeNode(); TreeNode ri
2020-05-22 08:18:54 444
原创 LeetCode第1371题:每个元音包含偶数次的最长子字符串(中等)
LeetCode第1371题:每个元音包含偶数次的最长子字符串(中等)题目:给你一个字符串 s ,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即 ‘a’,‘e’,‘i’,‘o’,‘u’ ,在子字符串中都恰好出现了偶数次。解题思路:创建一个二维数组,记录每个位置的元音的数量。有一个变量名搞错了,导致改了半天,最终还是超出了时间限制。class Solution { public int findTheLongestSubstring(String s) { in
2020-05-20 09:02:21 918
原创 LeetCode第680题:验证回文字符2(简单)
LeetCode第680题:验证回文字符2(简单)题目:给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。解题思路:双指针的做法class Solution { public boolean validPalindrome(String s) { int left = 0; int right = s.length()-1; int time = 1; while(left < right){
2020-05-19 08:53:08 442
原创 LeetCode第152题:乘积最大子数组(中等)
LeetCode第152题:乘积最大子数组(中等)题目:给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。解题思路:仿照之前的题,终于学会了前缀做法。class Solution { public int maxProduct(int[] nums) { int len = nums.length; int ans = nums[0]; //计算前缀积
2020-05-18 10:30:19 321
原创 LeetCode第560题:和为K的子数组(中等)
LeetCode第560题:和为K的子数组(中等)题目:给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。解题思路:想使用双指针的方法,通过和的大小,控制指针的移动。但是为了降低时间复杂度,我左右两个指针都不固定,这就导致了遗漏的问题。class Solution { public int subarraySum(int[] nums, int k) { int ans = 0; if(nums.length == 0) r
2020-05-15 09:35:18 289
原创 LeetCode第136题:只出现一次的数字(简单)
LeetCode第136题:只出现一次的数字(简单)题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?解题思路:用HashMap存储是很容易想到的方法,但是题目要求不能使用额外的空间。所以我选择了排序的方法。class Solution { public int singleNumber(int[] nums) { Arrays.sort(n
2020-05-14 10:15:58 361
原创 LeetCode第102题:二叉树的层次遍历(中等)
LeetCode第102题:二叉树的层次遍历(中等)题目:给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。解题思路:第一反应就是想用递归,但是两个List不能合并到一起,也没遍历右节点。class Solution { List<List<Integer>> ans = new ArrayList<List<Integer>>(); public List<List<Integ
2020-05-13 11:11:50 186
原创 LeetCode第221题:最大正方形(中等)
LeetCode第221题:最大正方形(中等)题目:在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。解题思路:想着从最大的正方形开始判断,再将边长依次缩小,但是没过class Solution { public int maximalSquare(char[][] matrix) { int ans = matrix.leng...
2020-05-08 12:03:31 186
原创 LeetCode第572题:另一个树的子树(简单)
LeetCode第572题:另一个树的子树(简单)题目:给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。解题思路:选择递归的方法,但是还有两个例子过不了,不知道哪里错了。class Solution { public boolean isSubtr...
2020-05-07 11:07:47 245
原创 5月打卡活动第5天 LeetCode第98题:验证二叉搜索树(中等)
5月打卡活动第5天 LeetCode第98题:验证二叉搜索树(中等)题目:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。解题思路:应该用动态规划,知道自己的问题在哪里,只判断了最右侧和左侧,中间的都没有判断。class...
2020-05-05 11:19:51 198
原创 4月打卡活动第29天 LeetCode第1095题:山脉数组中查找目标值(困难)
4月打卡活动第29天 LeetCode第1095题:山脉数组中查找目标值(困难)题目:给你一个 山脉数组 mountainArr,请你返回能够使得 mountainArr.get(index) 等于 target 最小 的下标 index 值。如果不存在这样的下标 index,就请返回 -1。题解做法:原本的二分法总是存在索引的问题,终于还是看了甜姨的做法。。。class...
2020-04-29 22:08:22 193
原创 4月活动第28天 面试题第56题:数组中数字出现的次数(中等)
4月活动第28天 面试题第56题:数组中数字出现的次数(中等)题目:一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。解题思路:hashmap记录每个数字出现的次数,太笨了。。class Solution { public int[] singleNumbers(int...
2020-04-28 21:39:42 246
原创 4月打卡活动第26天 LeetCode第23题:合并K个排序链表(困难)
4月打卡活动第26天 LeetCode第23题:合并K个排序链表(困难)之前做过的~~
2020-04-26 21:35:11 209
原创 4月打卡活动第24天 面试题第51题:数组中的逆序对(困难)
4月打卡活动第24天 面试题第51题:数组中的逆序对(困难)题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。解题思路:第一想法当然是两层循环,超出时间限制也是当然的。。。题解做法:class Solution { //记录答案 private int res = 0; ...
2020-04-24 16:36:10 224
原创 4月打卡活动第23天 面试题第08.11题:硬币(中等)
4月打卡活动第23天 面试题第08.11题:硬币(中等)题目:硬币。给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算n分有几种表示法。(结果可能会很大,你需要将结果模上1000000007)解题思路:一直想考虑用排列组合的方式,算出每种硬币的组合方式,然后对n进行拆分,再依次乘上组合方式数。没成功。。。。题解做法:class Solution { ...
2020-04-23 22:18:20 1521
原创 4月活动第22天 LeetCode第199题:二叉树的右视图(中等)
4月活动第22天 LeetCode第199题:二叉树的右视图(中等)题目:给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。解题思路:我理解就是一直右节点,当时我还不懂为什么是中等题,没过我也不知道为啥,直到,我看了答案。。。。。class Solution { public List<Integer> rightSide...
2020-04-22 16:52:44 171
原创 4月打卡活动第21天 LeetCode第1248题:统计优美数组(中等)
4月打卡活动第21天 LeetCode第1248题:统计优美数组(中等)题目:给你一个整数数组 nums 和一个整数 k。如果某个 连续 子数组中恰好有 k 个奇数数字,我们就认为这个子数组是「优美子数组」。请返回这个数组中「优美子数组」的数目。解题思路:竟然忘记了双指针。。class Solution { public int numberOfSubarrays(in...
2020-04-22 00:14:48 197
原创 4月打卡活动第20天 LeetCode第200题:岛屿数量(中等)
4月打卡活动第20天 LeetCode第200题:岛屿数量(中等)题目:给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。解题思路:真是太长时间没好好做题了,根本不会了。。。class Solution { pub...
2020-04-20 23:23:41 348 1
原创 4月打卡活动第19天 LeetCode第466题:统计重复个数(困难)
4月打卡活动第19天 LeetCode第466题:统计重复个数(困难)题目:由 n 个连接的字符串 s 组成字符串 S,记作 S = [s,n]。例如,[“abc”,3]=“abcabcabc”。如果我们可以从 s2 中删除某些字符使其变为 s1,则称字符串 s1 可以从字符串 s2 获得。例如,根据定义,“abc” 可以从 “abdbec” 获得,但不能从 “acbbe” 获得。现在...
2020-04-19 18:55:31 183
原创 4月打卡活动第18天 LeetCode第11题:盛最多水的容器(中等)
4月打卡活动第18天 LeetCode第11题:盛最多水的容器(中等)之前做过啦~~
2020-04-18 20:43:08 118
原创 LeetCode第79题:单词搜索(中等)
LeetCode第79题:单词搜索(中等)今天的是第55题,之前有做过题目:给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。题解做法:public class Solution { private boolean[][] m...
2020-04-17 21:22:01 190
原创 4月打卡活动第16天 LeetCode第56题:合并区间(中等)
4月打卡活动第16天 LeetCode第56题:合并区间(中等)之前做过这道题,但是自己的解法没过,今天把自己的解法改对了解题思路:class Solution { public int[][] merge(int[][] intervals) { int n = intervals.length; int[][] ans = new int[...
2020-04-16 10:04:13 166
原创 4月打卡活动第15天 LeetCode第542题:01矩阵(中等)
4月打卡活动第15天 LeetCode第542题:01矩阵(中等)题目:给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。两个相邻元素间的距离为 1 。解题思路:先寻找十字方向上的距离,再寻找可通过其他节点的较短的距离。class Solution { public int[][] updateMatrix(int[][] matrix) {...
2020-04-15 11:26:00 164
原创 4月打卡活动第14天 LeetCode第445题:两数相加2(中等)
4月打卡活动第14天 LeetCode第445题:两数相加2(中等)题目:给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。解题思路:链表转换为字符串计算。class Solution { public ListNode addTwoNu...
2020-04-14 20:44:41 213
原创 4月打卡活动第13天 LeetCode第355题:设计推特(中等)
4月打卡活动第13天 LeetCode第355题:设计推特(中等)题目:设计一个简化版的推特(Twitter),可以让用户实现发送推文,关注/取消关注其他用户,能够看见关注人(包括自己)的最近十条推文。你的设计需要支持以下的几个功能:postTweet(userId, tweetId): 创建一条新的推文getNewsFeed(userId): 检索最近的十条推文。每个推文都必须是由...
2020-04-13 13:51:03 157
原创 4月打卡活动第12天 面试题第16.03题:交点(困难)
4月打卡活动第12天 面试题第16.03题:交点(困难)题目:给定两条线段(表示为起点start = {X1, Y1}和终点end = {X2, Y2}),如果它们有交点,请计算其交点,没有交点则返回空值。要求浮点型误差不超过10^-6。若有多个交点(线段重叠)则返回 X 值最小的点,X 坐标相同则返回 Y 值最小的点。题解做法:这题也是太烦了。。。import java.uti...
2020-04-12 22:56:30 134
原创 4月打卡活动第11天 LeetCode第887题:鸡蛋掉落(困难)
4月打卡活动第11天 LeetCode第887题:鸡蛋掉落(困难)题目:你将获得 K 个鸡蛋,并可以使用一栋从 1 到 N 共有 N 层楼的建筑。每个蛋的功能都是一样的,如果一个蛋碎了,你就不能再把它掉下去。你知道存在楼层 F ,满足 0 <= F <= N 任何从高于 F 的楼层落下的鸡蛋都会碎,从 F 楼层或比它低的楼层落下的鸡蛋都不会破。每次移动,你可以取一个鸡蛋...
2020-04-11 21:08:18 114
原创 4月打卡活动第10天 LeetCode第151题:翻转字符串里的单词(中等)
4月打卡活动第10天 LeetCode第151题:翻转字符串里的单词(中等)题目:给定一个字符串,逐个翻转字符串中的每个单词。解题思路:最直接的做法。class Solution { public String reverseWords(String s) { String ans = ""; int len = s.length(); ...
2020-04-10 15:56:18 121
原创 LeetCode第78题:子集(中等)
LeetCode第78题:子集(中等)今日打卡是第22题,之前已经做过题目:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。解题思路:借鉴了77题的思路,又尝试用了一次栈。class Solution { private List<List<Integer>> ans = new ArrayLi...
2020-04-09 10:47:56 538
原创 4月打卡活动第8天 面试题第13题:机器人的运动范围(中等)
4月打卡活动第8天 面试题第13题:机器人的运动范围(中等)题目:地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入...
2020-04-08 16:47:47 112
原创 4月打卡活动第5天 LeetCode第460题:LFU缓存(困难)
4月打卡活动第5天 LeetCode第460题:LFU缓存(困难)可能。。就快不用打卡了吧。。。有点不开心。。。不知道怎样做才对,勉强打个卡吧。。。题目:请你为 最不经常使用(LFU)缓存算法设计并实现数据结构。它应该支持以下操作:get 和 put。get(key) - 如果键存在于缓存中,则获取键的值(总是正数),否则返回 -1。put(key, value) - 如果键不存在,...
2020-04-05 21:32:36 178
原创 4月打卡活动第4天 LeetCode第42题:接雨水(困难)
4月打卡活动第4天 LeetCode第42题:接雨水(困难)又是一道做过的题,正好周末休息,哈哈哈哈
2020-04-04 10:39:35 232 1
原创 LeetCode第77题:组合(中等)
LeetCode第77题:组合(中等)今天打卡的题是LeetCode第8题,之前做过,就又做了一道77题题目:给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。解题思路:借鉴了第40题的思想,利用栈和递归方法。class Solution { private List<List<Integer>> ans = new Arra...
2020-04-03 08:34:37 372 1
原创 4月打卡活动第2天 LeetCode第289题:生命游戏(中等)
4月打卡活动第2天 LeetCode第289题:生命游戏(中等)题目:给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1 即为活细胞(live),或 0 即为死细胞(dead)。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律:1、如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡;2、如果活细胞周...
2020-04-02 09:53:19 214
原创 4月打开活动第1天 LeetCode第1111题:有效括号的嵌套深度(中等)
4月打开活动第1天 LeetCode第1111题:有效括号的嵌套深度(中等)题目:有效括号字符串 仅由 “(” 和 “)” 构成,并符合下述几个条件之一:空字符串连接,可以记作 AB(A 与 B 连接),其中 A 和 B 都是有效括号字符串嵌套,可以记作 (A),其中 A 是有效括号字符串类似地,我们可以定义任意有效括号字符串 s 的 嵌套深度 depth(S):s 为...
2020-04-01 10:59:52 120
原创 3月打卡活动第31天 LeetCode第912题:排序数组(中等)
3月打卡活动第31天 LeetCode第912题:排序数组(中等)题目:给定一个整数数组 nums,将该数组升序排列。解题思路1:借着这道题复习一下排序方法吧。冒泡排序,依次从大到小确定。class Solution { public int[] sortArray(int[] nums) { int len = nums.length; //...
2020-03-31 10:32:05 253
原创 3月打卡活动第30天 面试题第62题:圆圈中最后剩下的数字(简单)
3月打卡活动第30天 面试题第62题:圆圈中最后剩下的数字(简单)题目:0,1,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。解题思路:想过链表和数组的做法,但是看到取值范围...
2020-03-30 09:44:24 182
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人