- 博客(34)
- 收藏
- 关注
原创 动态规划(三)打家劫舍和股票问题
注意:本题因为一只股票可以买卖多次,所以当第i天买入股票的时候,所持有的现金可能有之前买卖过的利润。122.买卖股票的最佳时机II,卖出时加上手续费即可。,然后分别调用打家劫舍1的代码,最后返回两者的最大值。取最左最小值,取最右最大值。思路:分为两种情况,
2023-06-05 23:58:34
95
原创 贪心算法思想
局部最优:当前“连续和”为负数的时候立刻放弃,从下一个元素重新计算“连续和”,因为负数加上下一个元素 “连续和”只会越来越小。贪心算法局部最优解:每次取最大跳跃步数(取最大覆盖范围),整体最优解:最后得到整体最大覆盖范围,看是否能到终点。贪心没有固定的模板,一般能够从局部最优推出全局最优,且想不出反例,就可以尝试写代码。局部最优的情况下,并记录最大的“连续和”,可以推出全局最优。最终利润是可以分解的,把利润分解为每天为单位的维度。局部最优:收集每天的正利润,全局最优:求得最大利润。贪心的是最大覆盖范围。
2023-03-25 16:06:06
156
原创 day 22 & 23 二叉搜索树
递归解法一:用返回值,插入元素递归解法二:不用返回值,外层记录父节点,在递归出口处插入迭代解法450.删除二叉搜索树中的节点递归解法,分为5种情况669. 修剪二叉搜索树递归解法108.将有序数组转换为二叉搜索树思路:将有序数组二等分,确保左右子树的个数相差不超过1即可。
2023-03-05 17:52:00
33
原创 day11 栈与队列
将操作数入栈,遇到操作符后,出栈两个数进行计算(如果是"/“或者”-"需要注意顺序,如第一个出栈的是除数,即在后面的那个);最后栈顶元素就是计算结果。可以将栈顶元素作为上一个字符,遍历的字符作为下一个,一旦相同则消除,不同则入栈。
2023-01-15 19:13:46
43
原创 day09 字符串匹配算法KMP及其应用
双指针法:双指针法在数组,链表和字符串中很常用数组填充类的问题,都可以先预先给数组扩容带填充后的大小,然后在从后向前进行操作反转系列:当需要固定规律一段一段去处理字符串的时候,要想想在在for循环的表达式上做做文章;先整体反转再局部反转,实现了反转字符串里的单词;先局部反转再整体反转达到了左旋的效果。kmp:理解next数组,求next数组,字符串匹配。
2023-01-14 21:42:33
45
原创 《区块链技术与应用》-07-BTC-挖矿难度
为什么要调整挖矿难度挖矿难度SHA-256产生的输出有256位,输出空间为2^256个可能取值,调整目标空间大小,简单来说就是满足输出值的前面几位是0。挖矿难度和目标阈值成反比,如下图所示,其中difficulty_1_target为是挖矿难度为1时候的target(0111111…),即最小挖矿难度。改变挖矿难度的原因系统总算力加强,区块难度不变的话,出块时间会变短,而不能维持人为选择的参数10min。出块时间短存在的问题假设出块1s,传播几十秒,两个节点同时收到一个区块,又同时发布了一个
2022-12-07 10:30:50
607
原创 使用sudo passwd root成功后,切换时没有响应
项目场景:修改root密码问题描述使用sudo passwd root成功后,切换时没有响应原因分析:原因:/root/.bashrc文件加了exit,注释后正常解决方案:直接删除exit
2022-03-19 13:40:32
495
原创 《区块链技术与应用》-15-ETH-账户
BTC账户模型BTC是基于交易的账本(transaction based ledger),系统中并未显示记录账户有多少钱,只能根据UTXO进行推算,总资产算一下所有有私钥的账户在UTXO中有多少个币。好处:隐私保护好问题:实用上比较别扭。例如:A→B(10BTC),A说明币的来源,分别是从几个交易中得来的,分别证明这些交易的合法性。实际银行只需要进账说明来源,花钱则不用。前面交易中收取到的输出,在花钱时,必须把该输出的钱都花出去。例如:图中的交易,剩余的BTC转回给自己。ETH账户模型
2021-03-04 11:47:41
296
1
原创 《区块链技术与应用》-13-BTC-思考
哈希指针BTC系统设计中的哈希指针,区块的块头指向前一个区块,而指针只保存本地内存的地址,发送到其他计算机上没有意义。这样发布区块时是怎么传播的?实际上,只有哈希,没有指针,块头数据结构中有一个指向前一个区块的哈希。怎么找到前一个区块的内容呢?全节点把区块存储在一个(key,value)的数据库中,key为区块的hash,value就是区块的内容。常用的为level DB,所谓的区块链的链表结构,实际上是在level DB中用hash值串起来的,只要掌握最后一个区块的hash值,就可以把最后一个区块的内
2021-03-03 13:09:51
235
原创 《区块链技术与应用》-06-BTC-网络
比特币网络工作原理比特币工作在应用层(application layer),底层是网络层(network layer),运行一个P2P Overlay NetWork(P2P覆盖网络)。所有节点都是对等的,不像有的P2P网络有超级节点(super node),或者主节点(master node)。加入网络首先得知道至少有一个种子节点(seed node),通过种子节点告知自己它所知道的节点。节点之间的通信采用了TCP协议,便于穿透防火墙。当节点离开时,只需要自行退出即可,其他节点在一定时间后仍然没有收
2021-02-20 16:55:48
218
原创 java使用465端口发送邮件
项目场景:javaweb网站项目,实现注册功能时采用邮件验证方式。问题描述:本地测试MailUtils工具类成功发送邮件验证,服务器部署后保存,查看日记com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.qq.com, 25; timeout -1; nested exception is: java.net.ConnectException: Connection timed out
2020-10-24 11:09:21
771
原创 使用Anaconda进行机器学习遇到的配置问题
修改 jupyter notebook的默认文件夹位置打开prompt输入jupyter notebook –generate-config打开上一步生成的配置文件jupyter_notebook_config.py在jupyter_notebook_config.py中找到并修改如下配置项:c.NotebookApp.notebook_dir = ”自定义目录"在win开始菜单中找到jupyter notebook快捷图标,鼠标右键>>属性>>快捷方式>&g
2020-07-21 00:34:57
102
原创 java自学(常量关键字区别)
final:对于基本类型,final使数值恒定不变;对于对象引用,final使引用恒定不变。应用于基本类型域,或不可变类域。static:属于类,不属于任何独立的对象。方法外,类中。俩种情形:①只想为某特定域分配单一存储空间,不去考虑创建对象;②即使没有创建对象,也能够调用这个方法。俩种引用static变量的方法:① 类名.name ② 对象名.name静态常量:final static...
2019-07-13 18:34:55
684
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人