何牧的工作日志
-
刷题、学习、项目进度等等
-
2021/1/17
刷题
通过前两个点算出斜率和截距,往后遍历看是不是符合就完事儿了,斜率无穷大就直接比较x
并查集,倒序遍历所有边,分别计算出除去当前边的其他所有边加入并查集后的连通分量,若为1(即该边为倒序的第一条多余边),则返回这条边
并查集,计算连通分量即可
暴力遍历:时间O(N^2),空间O(1);哈希表:时间O(N),空间O(N)
-
2021/1/18
刷题
并查集+哈希表,通过遍历所有邮箱,将出现过的不重复的邮箱对应id使用并查集去重、合并,最后将之与名字对应
(今天一天在外头,晚上回家就看了每日一题,明天多刷点
-
@holdice 嗯嗯,确实得劳逸结合,咱可不是黑心工厂。剑指offer有刷完吗?
-
@pengzc 刷了几道,还没完全刷完。。。(在刷了在刷了,具体进度可以去github上看,我稍后加个地址)
-
2021/1/19
刷题
最小生成树,最小生成树算法有很多种,各种方法应该都可以,这里采用的是Prim,即每次加入最短的边(相对已连接起来的组件),加完所有点后即得最小生成树
对于任意一天考虑四个变量:
fstBuy: 在该天第一次买入股票可获得的最大收益
fstSell: 在该天第一次卖出股票可获得的最大收益
secBuy: 在该天第二次买入股票可获得的最大收益
secSell: 在该天第二次卖出股票可获得的最大收益
分别对四个变量进行相应的更新, 最后secSell就是最大 收益值(secSell >= fstSell)利用递归的方式,通过中序遍历得到根节点后,结合前序遍历计算左子树和右子树的元素个数,分隔开后递归往下构建
-
-
2021/1/20
刷题
日期 题目 思路或总结 2021/1/20 剑指Offer JZ09 用两个栈实现队列 初始化两个栈:stack1和stack2,新增数据压入stack1中,删除时stack2.pop,倘若stack2为空,就把stack1中所有元素一个个压入stack2,倘若stack1和stack2都为空,返回-1 2021/1/20 剑指Offer JZ10 斐波那契数列(0≤n≤100) 正常斐波那契数列,n可能取特别大导致结果溢出,所以依题意结果要模除1e9+7,即每一步算完后模除即可 2021/1/20 剑指 Offer 10- II. 青蛙跳台阶问题 F(0) = 1, F(1) = 1,其他同上一道 2021/1/20 剑指 Offer 11. 旋转数组的最小数字 遍历数组,找到第一个比前一个元素小的元素,返回,倘若找不到就属于数组完全递增,返回第一个元素 2021/1/20 628. 三个数的最大乘积 排好序后,最大值只可能出现在1、最大的三项乘积 2、最小的两项和最大的一项乘积。知道这一点后返回俩者较大值即可 2021/1/20 剑指 Offer 12. 矩阵中的路径 DFS + 剪枝,需要注意回溯时路径的还原和递归的出口 2021/1/20 剑指 Offer 13. 机器人的运动范围 DFS K.O 2021/1/20 剑指 Offer 14- I. 剪绳子 1. 动态规划,状态转移方程:dp[i] = Math.max(dp[i], Math.max(j * dp[i-j], j * (i - j))); 其中 1<j<i 2.数论解法,将数尽可能拆成最多的3 2021/1/20 剑指 Offer 15. 二进制中1的个数 移位比较<br>n = n & (n - 1) 消去最右边的1,计数 2021/1/20 剑指 Offer 16. 数值的整数次方 快速幂,n往下2分 2021/1/20 剑指 Offer 17. 打印从1到最大的n位数 就这? 今儿晚上刷题刷上头了,明儿个争取把简历整出来投了
-
@holdice 太牛了,向你致敬!
-
@holdice 牛的,我是fw
-
@pengzc 川川太谦虚了
-
2021/1/21
刷题
日期 题目 思路或总结 2021/1/21 1489. 找到最小生成树里的关键边和伪关键边 关键边:去除这条边后,最小生成树权值合变大(v > value)或者无法生成最小生成树<br>伪关键边:首先将这条边连上,最小生成树权值不变(v = value) 2021/1/21 剑指 Offer 14- II. 剪绳子 II n的范围扩大,且结果要取模导致无法比大小,故直接采用数学方式 2021/1/21 剑指 Offer 18. 删除链表的节点 单链表删除节点 烟草烘烤系统
甲方要求在一个新的服务器上部署,用作测试和展示用,现在处于熟悉项目部署流程的痛苦中,今晚可能得熬夜了,我为什么要夸下海口说今晚就能搞定。。。
-
此回复已被删除!
-
@holdice 加油加油加油
-
@holdice 贴贴
-
2021/1/22
刷题
日期 题目 思路或总结 2021/1/22 989. 数组形式的整数加法 模拟正常加法 2021/1/22 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 双指针从数组两边往中间靠 2021/1/22 剑指 Offer 22. 链表中倒数第k个节点 遍历两次,第一次得链表长度,第二次遍历到链表长度 - k 的地方即可 2021/1/22 剑指 Offer 24. 反转链表 双指针 2021/1/22 剑指 Offer 25. 合并两个排序的链表 类似于归并排序 2021/1/22 剑指 Offer 26. 树的子结构 DFS,需要注意的是DFS的时候只要待匹配的节点为null,直接返回true 2021/1/22 剑指 Offer 27. 二叉树的镜像 DFS,就这? 2021/1/22 剑指 Offer 28. 对称的二叉树 DFS,和上一题类似,只不过判断对称是比较左儿子的左儿子和右儿子的右儿子,左儿子的右儿子和右儿子的左儿子 2021/1/22 剑指 Offer 29. 顺时针打印矩阵 每转一次弯相当于有一条边界向中移了一格 2021/1/22 剑指 Offer 30. 包含min函数的栈 用数组实现,在push操作时维护更新min,减少排序消耗,只有在pop操作把min弹出后需要重新排序。 今天下午又是刷题刷爽了的一天,希望以后每天都能这样坚持下去把(剑指Offer题目没有很难,但因为数据结构和算法这块基础有点差,就照着题单冲了,A题的感觉真爽,收获颇丰O(∩_∩)O
烟草烘烤系统
大概凌晨1点的时候差不多部署完了,包括web前后端和与嵌入式通信的端口,采用gunicorn部署后端,nginx部署前端,supervisor部署监听嵌入式通信的端口的脚本
学到了许多(只有受过苦才能学到东西啊,真实555
种子杯后端重构
萌宝找我接口联调了,可是昨天晚上在部署烟草,有点分身乏术的感觉,希望忙完烟草测试服务器部署后能腾出时间来好好整把,新鲜血液的培养还是比较重要滴
找工作进度
写好了简历,今晚捣鼓一份自我介绍出来
-
-
2021/1/23
刷题
日期 题目 思路或总结 2021/1/23 1319. 连通网络的操作次数 并查集,若连接数小于n-1,不可能全部连接,返回 -1。需要更改的连接数就是通过并查集后计算得的连通分量 - 1 (并查集已经比较熟练,可以手写一遍过了 2021/1/23 1248. 统计「优美子数组」 前缀和+差分,遍历数组,维护从0到i出现的奇数个数,odd[r] - odd[l - 1] = k即满足条件,故维护一个奇数个数出现的频次数组,每次结果加上前移k项的值即可 2021/1/23 剑指 Offer 31. 栈的压入、弹出序列 模拟入栈出栈操作,最后判断栈是否为空即可 2021/1/23 剑指 Offer 32 - I. 从上到下打印二叉树 二叉树的层序遍历,使用队列实现 种子杯重构
晚上开始写rank部分的代码,想了很久如何设计才会便于扩展等等,感觉再怎么设计到时候都会根据实际情况来改,于是乎就整个最简单的,先和前端人员把接口对了再嗦
看了看一个多月前写的代码,感觉有点问题,修修补补又要开始重构了
-
@holdice 学学基础知识了(计网+操作系统)
-
2021/1/24
刷题
日期 题目 思路或总结 2021/1/24 674. 最长连续递增序列 遍历一遍就ok了 2021/1/24 剑指 Offer 32 - II. 从上到下打印二叉树 II 递归,记录层数 2021/1/24 剑指 Offer 32 - III. 从上到下打印二叉树 III 同上一题,奇数行翻转就行了 种子杯重构
部署出现了MySQL经典的8h问题,找时间研究一下
计算机网络课设
DDL果然是第一生产力!