日总结
Enonlay
这个作者很懒,什么都没留下…
展开
-
4.17周五
做题今天做了一个BFS、贪心的题,可以好好研究一下:力扣55跳跃游戏。给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。一开始就用了最普通的暴力BFS,对每个位置,可能的到达的位置都进行入队,然后依次遍历下去,如果nums[i]==0就直接出队,不进行处理。但是这个方法很明显会超时,所以在评论区看到了一个进...原创 2020-04-18 10:41:24 · 101 阅读 · 0 评论 -
4.16周四
做题一道简单的题,力扣56:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].其中这些区间并没有排序顺序,所以先进行排序可以对后续的处理进行简化,这里简单讲讲接口Comparator,以及Arrays.sort()首先,sort函数的几个常用方法...原创 2020-04-18 10:41:13 · 78 阅读 · 0 评论 -
4.15周三
做题力扣542,一道广度优先搜索的经典题型:给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。两个相邻元素间的距离为 1 。输入:0 0 00 1 01 1 1输出:0 0 00 1 01 2 1思路:如果只有一个0,可以从0的位置开始进行广度优先搜索,每搜索一个位置,就将距离加1,过程可像下面的步骤:当像题目这样出现多个零的情况,只需要在进行广度优先...原创 2020-04-16 11:40:29 · 100 阅读 · 0 评论 -
4.13周一
做题今天做了一下鸡蛋掉落力扣887,推出递归式之后用直接递归做了一下,因为初始值的问题一直出错,然后又想到了一个边界条件,才做对。但是因为复杂度太高,不能通过力扣AC。但是还是把这个方法记录一下。class Solution { int[][] mark; public int superEggDrop(int K, int N) { return dp(K...原创 2020-04-14 22:21:43 · 60 阅读 · 0 评论 -
4.14周二
做题今天做了一个两数相加II,力扣445:给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。输入:(7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 8 -> 0 -> 7这...原创 2020-04-14 22:21:21 · 63 阅读 · 0 评论 -
4.8周三
做题力扣204:计算从2~n-1的质数的数量。看了一个高效算法,基本思想就是,如果2是质数,那么22 23 24 25 … 就都不是质数。并且由于12 = 26 = 34 = 43 = 62 在12的根号之后,会有计算重复,所以需要检测的质数只需要小于n的平方即可,可以大大缩短计算时间。class Solution { public int countPrimes(int n) {...原创 2020-04-13 12:20:48 · 78 阅读 · 0 评论 -
4.10周五
做题今天做了一个单词翻转的题,力扣151:输入: “the sky is blue”输出: “blue is sky the”记录一下几个库函数的用法public String reverseWords(String s) { // 除去开头和末尾的空白字符 s = s.trim(); // 正则匹配连续的空白字符作为分隔符分割 ...原创 2020-04-13 12:20:33 · 58 阅读 · 0 评论 -
4.9周四
做题今天做了一题力扣22,括号生成,思路和官方题解差不多,但是我的记录优化并没有产生效果,还是要继续研究一下。思路大概这样:任何一个括号序列都一定是由 ( 开头,并且第一个 ( 一定有一个唯一与之对应的 )。这样一来,每一个括号序列可以用 (a)b 来表示,其中 a 与 b 分别是一个合法的括号序列(可以为空)。class Solution { ArrayList[] cache = ...原创 2020-04-09 23:03:04 · 74 阅读 · 0 评论 -
4.7周二
做题做完了LFU,注意题目中,如果put(1,4),put(1,2)这样的输入,以1为key的使用评率也需要增加,没有考虑到这点所以做错了。然后还做了一个矩阵旋转,我的思路是写一个旋转一圈的函数,然后再从外到内每圈调用,直到全部都旋转完,挺简单的,没啥好说的。...原创 2020-04-08 09:32:55 · 137 阅读 · 0 评论 -
4.6周一
做题啥也没做LFU写了一个功能函数,睡了一下午。晚上在看组会要开的东西,唉,难顶。原创 2020-04-06 19:18:52 · 84 阅读 · 0 评论 -
4.2周四
做题今天没有做每日一题,感觉今天的题也不好做,而且最近比较忙,下午是虎牙面试,晚上是美团笔试,还要做下周的ppt,所以就看了数组的几个题,下面说一下删除排序数组的重复项看到删除也不能马上从删除的角度考虑,如果真的去删除的话,时间复杂度确实会比较大。这里可以考虑两个游标,i游标用于构建不存在重复元素的数组,j游标用于遍历整个数组。当j游标找到一个不重复的数的时候就在i游标处赋值,下面看一下代...原创 2020-04-03 21:19:04 · 77 阅读 · 0 评论 -
4.3周五
一天都没干什么活,早上憋了几篇ppt,下午睡了一下午觉,然后做了做每日一题。每日一题今天是做一个字符串转整数,没啥好说的,提几个点。越界的检验:while (idx < n && Character.isDigit(chars[idx])) { int digit = chars[idx] - '0'; if (ans ...原创 2020-04-03 21:18:19 · 75 阅读 · 0 评论 -
4.1周三
每日一题今天的每日一题有点蠢,一开始没看懂题目,后来看懂了。这里备注一下,所谓不相交的括号指的是,比如一个左括号不能同时属于两个右括号这样子。力扣1111,因为解法不是很明白,感觉意义也不是很大,今天就不讲了。Java今天开始上设计模式,并且看了设计模式的目的代码重用性可扩展性可靠性单一职责原则对类来说,一个类只负责一个职责Java课看了继承、多态继承私有成员变量和...原创 2020-04-01 22:17:18 · 84 阅读 · 0 评论 -
3.30周一
每日一题力扣62:圆圈中剩下的数字自己用ArrayList模拟实现了一遍,勉强通过测试。在评论区有大佬给出了解释的比较好的数学方法,从删除的最后一个状态进行反推,比官方题解要好,但是看得似懂非懂,先记着,有空再回去做一次。在这个大佬的题解里面也讲了模拟算法,一开始我也纠结使用ArrayList还是LinkedList,因为总得来说,链表的删除比较高效,而这个又是删除比较多的算法。但是大佬提...原创 2020-03-31 23:16:31 · 48 阅读 · 0 评论 -
3.31周二
今天主要就做了每日一题效率太低了,一整天感觉就写了个快速排序和堆排序,都是些基础,也摆弄了挺久。这里讲一下力扣的快速排序官方题解的partition函数是有bug的,不过因为他用了随机快排,所以bug比较难触发,这里记录一下[3,1,1,0,3]这个序列就会触发他的partition的bug,所以还是用模板partition比较稳妥(被这个破bug坑了一个上午),这里记录一下我写的solutio...原创 2020-03-31 20:30:19 · 80 阅读 · 0 评论 -
3.29周日
今天第一次参加周赛,作为稳稳的前三选手,看了一下第三题的设计,有个Java题解做的比较简洁,我就照着实现了一遍,下面是题目:力扣5370这个题解是抄的评论区的一个题解,里面还有一点疑问,但是力扣的账号不绑手机不让发评论,不然我就问问他了,手机号被我有一次新建了一个账号,吐了。import java.util.*;class UndergroundSystem { //Key值是站点的名...原创 2020-03-29 20:36:15 · 87 阅读 · 0 评论