何牧的工作日志
-
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果然是第一生产力!
-
-
2021/1/25
刷题
日期 题目 思路或总结 2021/1/25 959. 由斜杠划分区域 并查集 or DFS or BFS 烟草系统
今天一天都在和烟草甲方处理测试服务器部署的问题,由于要部署微信小程序,必须要部署HTTPS,折腾了半天用自己域名的子域名申了个免费的SSL证书部署了,完整走了一编HTTPS的部署流程,又学到了许多
-
-
2021/1/26
刷题
日期 题目 思路或总结 2021/1/26 1128. 等价多米诺骨牌对的数量 将二维化作一维然后遍历数组 烟草系统
邓超反应历史查询有点慢且容易卡住的问题,上皖南服务器看了看,8个G的表,能不慢吗。。。900W条数据,一次查就可能查出来七八万。最后写脚本把无效数据删了一些,大概去了200w左右,等那边的下一步反馈把。
找工作进度
整完烟草的琐事就开始复习数据结构基础知识,对着java.util包,反键生成diagram,然后一个个对着看,算是初步看完总结了几种经典的数据结构的底层实现和相关特性。感觉多线程和锁这块还得下狠功夫。
种子杯重构
明天一定搞完部署!!,立个FLAG!
-
@holdice 已阅