![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
文章平均质量分 73
dream or nightmare
分享资源,总结知识,一起进步。
展开
-
LeetCode每日一题2021.11.21—12.01
2021.11.21 559.N叉树的最大深度2021.11.22 384.打乱数组2021.11.23 859.亲密字符串2021.11.24 432.从英文中重建数字原创 2021-11-21 10:12:45 · 1239 阅读 · 0 评论 -
LeetCode每日一题 2021.11.10-2021.11.20
2021.11.10 495.提莫攻击题目思路模拟即可,最后一个毒药的持续时间一定是duration秒,因此只需要考察前n-1个毒药是duration秒还是timeSeries[i]-timeSeries[i-1]秒。代码class Solution {public: int findPoisonedDuration(vector<int>& timeSeries, int duration) { int sum = 0; ..原创 2021-11-10 15:15:57 · 767 阅读 · 3 评论 -
LeetCode刷题 7. 整数反转
题目描述思路主要的问题还是判断溢出。方法一(仅限java):可以直接存一个临时的翻转结果,如果这个翻转结果除以10不等于上一个结果,说明有溢出。因为java溢出不会报错,C++计算结果的时候溢出直接报错。class Solution { public int reverse(int x) { int res = 0; while (x != 0) { int tmp = res * 10 + x % 10;原创 2021-11-07 10:51:17 · 306 阅读 · 0 评论 -
LeetCode每日一题10.29-11.9
class Solution {public: bool isSelfCrossing(vector<int>& distance) { int n = distance.size(); if(n <= 3) return false; for(int i = 3; i < n; i++) { if(distance[i] >= distance[i-2] && dist.原创 2021-10-29 14:20:46 · 537 阅读 · 0 评论 -
LeetCode 452. 用最少数量的箭引爆气球解答错误问题
LeetCode452题本是一道平平无奇的贪心算法题,求不相交区间的最大个数呗,但是就是有一个测试用例过不了。看了看题解和评论区才发现,原来是实现comparator接口的compare方法时出了问题Arrays.sort(points,new Comparator<int[]>(){ public int compare(int[] a1 , int[] a2){ return a1[1] - a2[1];//这一块出问...原创 2021-01-13 10:53:33 · 343 阅读 · 0 评论 -
过河卒问题
原题核心:f[1][1]=1==f[i][j]=f[i−1][j]+f[i][j−1] ==类似于Folyd算法,每次循环都更新当前顶点的路径条数核心算法: for(int i=1;i<=a;i++){ for(int j=1;j<=b;j++){ if(s[i][j]) continue; luxian[i][j]=luxian[i][j]&g...原创 2020-01-18 21:36:50 · 797 阅读 · 0 评论 -
LeetCode刷题-动态规划
动态规划做题思路1.定义数组元素来表示解,并且清晰的描述数组的含义,我们习惯用一个一维数组或者二维数组,来保存历史数组,假设用一维数组 df[] 吧,那么df[i] 你能否清楚的描述是什么意思呢?2.找出递推式,动态规划就是要利用曾经计算过的解的集合,因此递推式显得尤为重要,第一个步骤我们定义出数组的含义之后,你们df[n]和df[n-1]、df[n-2]有什么递推关系呢?3.找出初始值。递推式递推到最后必须有初始值才能求解出问题。所以初始值也显得很为重要。63.股票的最大利润1.定义数组来表示原创 2020-09-12 19:46:51 · 409 阅读 · 0 评论 -
LeetCode刷题-哈希表
242.有效的字母异位词定义一个数组叫做a用来上记录字符串s里字符出现的次数。需要把字符映射到数组也就是哈希表的索引下表上,「因为字符a到字符z的ASCII是26个连续的数值,所以字符a映射为下表0,相应的字符z映射为下表25。」再遍历字符串s的时候,「只需要将 s[i] - ‘a’ 所在的元素做+1 操作即可,并不需要记住字符a的ASCII,只要求出一个相对数值就可以了。」这样就将字符串s中字符出现的次数,统计出来了。那看一下如何检查字符串t中是否出现了这些字符,同样在遍历字符串t的时候,对t原创 2020-09-11 20:15:44 · 321 阅读 · 0 评论 -
线性时间从小到大打印数组
线性时间从小到大打印数组问题:给你n个无序的int整型数组arr,并且这些整数的取值范围都在0-20之间,要你在 O(n) 的时间复杂度中把这 n 个数按照从小到大的顺序打印出来。对于这道题,如果你是先把这 n 个数先排序,再打印,是不可能O(n)的时间打印出来的。但是数值范围在 0-20。我们就可以巧用数组下标了。把对应的数值作为数组下标,如果这个数出现过,则对应的数组加1。最后只要遍历这个数组,如果数组元素不为零就打印该数组下标即可。public void dfs(int[] arr){ int原创 2020-09-11 16:09:06 · 237 阅读 · 0 评论 -
LeetCode刷题-长度最小的子数组
长度最小的子数组暴力解法:通过遍历所有的子数组找到满足条件的最小子数组。原创 2020-09-09 19:50:45 · 327 阅读 · 0 评论 -
LeetCode刷题----数组及其双指针
编号35:搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0这道题目,要在数组中插入目标值,无非是这四种情况。目标值在数组所有元素之前目标值等于数组中某一个元原创 2020-09-09 18:27:19 · 386 阅读 · 0 评论