Hello 算法 1.0.0b4 Python版
双向链表常被用于需要快速查找前一个和下一个元素的场景。 ‧ 高级数据结构:比如在红黑树、B 树中,我们需要知道一个节点的父节点,这可以通过在节点中保存一 个指向父节点的指针来实现,类似于双向链表。 ‧ 浏览器历史:在网页浏览器中,当用户点击前进或后退按钮时,浏览器需要知道用户访问过的前一个和 后一个网页。双向链表的特性使得这种操作变得简单。 ‧ LRU 算法:在缓存淘汰算法(LRU)中,我们需要快速找到最近最少使用的数据,以及支持快速地添 两种实现的对比结论与栈一致,在此不再赘述。 5. 栈与队列 hello‑algo.com 78 5.2.3. 队列典型应用 ‧ 淘宝订单。购物者下单后,订单将加入队列中,系统随后会根据顺序依次处理队列中的订单。在双十一 期间,短时间内会产生海量订单,高并发成为工程师们需要重点攻克的问题。 ‧ 各类待办事项。任何需要实现“先来后到”功能的场景,例如打印机的任务队列、餐厅的出餐队列等。 你的目标是选择一组物品,使得总重量不超过载重量,且 总价值最大。如果每次都选择性价比最高(价值 / 重量)的物品,那么贪心算法在一些情况下可以得到 最优解。 4. 股票买卖问题:给定一组股票的历史价格,你可以进行多次买卖,但如果你已经持有股票,那么在卖出 之前不能再买,目标是获取最大利润。 5. 霍夫曼编码:霍夫曼编码是一种用于无损数据压缩的贪心算法。通过构建霍夫曼树,每次选择出现频率0 码力 | 329 页 | 27.34 MB | 1 年前3Hello 算法 1.1.0 Python版
双向链表常用于需要快速查找前一个和后一个元素的场景。 ‧ 高级数据结构:比如在红黑树、B 树中,我们需要访问节点的父节点,这可以通过在节点中保存一个指 向父节点的引用来实现,类似于双向链表。 ‧ 浏览器历史:在网页浏览器中,当用户点击前进或后退按钮时,浏览器需要知道用户访问过的前一个和 后一个网页。双向链表的特性使得这种操作变得简单。 ‧ LRU 算法:在缓存淘汰(LRU)算法中,我们需要快速找到最近最少使用的数据,以及支持快速添加 组,从而引入扩容机制。有兴趣的读者可以尝试自行实现。 两种实现的对比结论与栈一致,在此不再赘述。 5.2.3 队列典型应用 ‧ 淘宝订单。购物者下单后,订单将加入队列中,系统随后会根据顺序处理队列中的订单。在双十一期 间,短时间内会产生海量订单,高并发成为工程师们需要重点攻克的问题。 ‧ 各类待办事项。任何需要实现“先来后到”功能的场景,例如打印机的任务队列、餐厅的出餐队列等, 队列在这些场景中可以有效地维护处理顺序。 分数背包问题:给定一组物品和一个载重量,你的目标是选择一组物品,使得总重量不超过载重量,且 总价值最大。如果每次都选择性价比最高(价值 / 重量)的物品,那么贪心算法在一些情况下可以得到 最优解。 ‧ 股票买卖问题:给定一组股票的历史价格,你可以进行多次买卖,但如果你已经持有股票,那么在卖出 之前不能再买,目标是获取最大利润。 ‧ 霍夫曼编码:霍夫曼编码是一种用于无损数据压缩的贪心算法。通过构建霍夫曼树,每次选择出现频率0 码力 | 364 页 | 18.42 MB | 1 年前3Hello 算法 1.0.0b5 Python版
双向链表常被用于需要快速查找前一个和下一个元素的场景。 ‧ 高级数据结构:比如在红黑树、B 树中,我们需要访问节点的父节点,这可以通过在节点中保存一个指 向父节点的引用来实现,类似于双向链表。 ‧ 浏览器历史:在网页浏览器中,当用户点击前进或后退按钮时,浏览器需要知道用户访问过的前一个和 后一个网页。双向链表的特性使得这种操作变得简单。 ‧ LRU 算法:在缓存淘汰算法(LRU)中,我们需要快速找到最近最少使用的数据,以及支持快速地添 两种实现的对比结论与栈一致,在此不再赘述。 第 5 章 栈与队列 hello‑algo.com 94 5.2.3 队列典型应用 ‧ 淘宝订单。购物者下单后,订单将加入队列中,系统随后会根据顺序依次处理队列中的订单。在双十一 期间,短时间内会产生海量订单,高并发成为工程师们需要重点攻克的问题。 ‧ 各类待办事项。任何需要实现“先来后到”功能的场景,例如打印机的任务队列、餐厅的出餐队列等。 分数背包问题:给定一组物品和一个载重量,你的目标是选择一组物品,使得总重量不超过载重量,且 总价值最大。如果每次都选择性价比最高(价值 / 重量)的物品,那么贪心算法在一些情况下可以得到 最优解。 ‧ 股票买卖问题:给定一组股票的历史价格,你可以进行多次买卖,但如果你已经持有股票,那么在卖出 之前不能再买,目标是获取最大利润。 ‧ 霍夫曼编码:霍夫曼编码是一种用于无损数据压缩的贪心算法。通过构建霍夫曼树,每次选择出现频率0 码力 | 361 页 | 30.64 MB | 1 年前3Hello 算法 1.0.0 Python版
双向链表常用于需要快速查找前一个和后一个元素的场景。 ‧ 高级数据结构:比如在红黑树、B 树中,我们需要访问节点的父节点,这可以通过在节点中保存一个指 向父节点的引用来实现,类似于双向链表。 ‧ 浏览器历史:在网页浏览器中,当用户点击前进或后退按钮时,浏览器需要知道用户访问过的前一个和 后一个网页。双向链表的特性使得这种操作变得简单。 ‧ LRU 算法:在缓存淘汰(LRU)算法中,我们需要快速找到最近最少使用的数据,以及支持快速添加 组,从而引入扩容机制。有兴趣的读者可以尝试自行实现。 两种实现的对比结论与栈一致,在此不再赘述。 5.2.3 队列典型应用 ‧ 淘宝订单。购物者下单后,订单将加入队列中,系统随后会根据顺序处理队列中的订单。在双十一期 间,短时间内会产生海量订单,高并发成为工程师们需要重点攻克的问题。 ‧ 各类待办事项。任何需要实现“先来后到”功能的场景,例如打印机的任务队列、餐厅的出餐队列等, 队列在这些场景中可以有效地维护处理顺序。 分数背包问题:给定一组物品和一个载重量,你的目标是选择一组物品,使得总重量不超过载重量,且 总价值最大。如果每次都选择性价比最高(价值 / 重量)的物品,那么贪心算法在一些情况下可以得到 最优解。 ‧ 股票买卖问题:给定一组股票的历史价格,你可以进行多次买卖,但如果你已经持有股票,那么在卖出 之前不能再买,目标是获取最大利润。 ‧ 霍夫曼编码:霍夫曼编码是一种用于无损数据压缩的贪心算法。通过构建霍夫曼树,每次选择出现频率0 码力 | 362 页 | 17.54 MB | 1 年前3Hello 算法 1.2.0 简体中文 Python 版
双向链表常用于需要快速查找前一个和后一个元素的场景。 ‧ 高级数据结构:比如在红黑树、B 树中,我们需要访问节点的父节点,这可以通过在节点中保存一个指 向父节点的引用来实现,类似于双向链表。 ‧ 浏览器历史:在网页浏览器中,当用户点击前进或后退按钮时,浏览器需要知道用户访问过的前一个和 后一个网页。双向链表的特性使得这种操作变得简单。 ‧ LRU 算法:在缓存淘汰(LRU)算法中,我们需要快速找到最近最少使用的数据,以及支持快速添加 组,从而引入扩容机制。有兴趣的读者可以尝试自行实现。 两种实现的对比结论与栈一致,在此不再赘述。 5.2.3 队列典型应用 ‧ 淘宝订单。购物者下单后,订单将加入队列中,系统随后会根据顺序处理队列中的订单。在双十一期 间,短时间内会产生海量订单,高并发成为工程师们需要重点攻克的问题。 ‧ 各类待办事项。任何需要实现“先来后到”功能的场景,例如打印机的任务队列、餐厅的出餐队列等, 队列在这些场景中可以有效地维护处理顺序。 分数背包问题:给定一组物品和一个载重量,你的目标是选择一组物品,使得总重量不超过载重量,且 总价值最大。如果每次都选择性价比最高(价值 / 重量)的物品,那么贪心算法在一些情况下可以得到 最优解。 ‧ 股票买卖问题:给定一组股票的历史价格,你可以进行多次买卖,但如果你已经持有股票,那么在卖出 之前不能再买,目标是获取最大利润。 ‧ 霍夫曼编码:霍夫曼编码是一种用于无损数据压缩的贪心算法。通过构建霍夫曼树,每次选择出现频率0 码力 | 364 页 | 18.43 MB | 9 月前3WeRoBot 0.6.0 微信公众号开发框架文档
create_js_pay_params(**package) 签名 js 需要的参数 详情请参考 支付开发文档 wxclient.create_js_pay_params( body=标题, out_trade_no=本地订单号, total_fee=价格单位分, notify_url=通知url, spbill_create_ip=建议为支付人ip, ) Parameters: package – 需要签名的的参数 , out_trade_no=本地订单号, deliver_timestamp=int(time.time()), deliver_status=”1”, deliver_msg=”ok” ) :param 需要签名的的参数 :return: 支付需要的对象 pay_order_query(out_trade_no) 查询订单状态 一般用于无法确定 订单状态时候补偿 Parameters: Parameters: out_trade_no – 本地订单号 Returns: 订单信息dict © Copyright 2014, whtsky. Created using Sphinx 1.2.1. index modules | next | previous | WeRoBot 0.6.0 documentation » 部署 在独立服务器上部署 当你运行 werobot.run 的时候,你可以通过传递0 码力 | 35 页 | 63.71 KB | 1 年前3WeRoBot 0.6.1 微信公众号开发框架文档
create_js_pay_params(**package) 签名 js 需要的参数 详情请参考 支付开发文档 wxclient.create_js_pay_params( body=标题, out_trade_no=本地订单号, total_fee=价格单位分, notify_url=通知url, spbill_create_ip=建议为支付人ip, ) Parameters: package – 需要签名的的参数 , out_trade_no=本地订单号, deliver_timestamp=int(time.time()), deliver_status=”1”, deliver_msg=”ok” ) :param 需要签名的的参数 :return: 支付需要的对象 pay_order_query(out_trade_no) 查询订单状态 一般用于无法确定 订单状态时候补偿 Parameters: Parameters: out_trade_no – 本地订单号 Returns: 订单信息dict © Copyright 2014, whtsky. Created using Sphinx 1.2.1. index modules | next | previous | WeRoBot 0.6.1 documentation » 部署 在独立服务器上部署 当你运行 werobot.run 的时候,你可以通过传递0 码力 | 35 页 | 64.45 KB | 1 年前311 数字货币交易系统python实践 代少飞
队列挂掉 负数资产 冲钱一次,转两倍资产 用户资产 用户发现自己资产为负数 负数资产 充一次转双倍 队列数据丢失 队列挂掉 RabbitMQ 撮合或者清算队列数据丢失 订单摆上去,能交易 却始终交易不了 RabbitMQ 大部分功能瘫痪 钱包 用户充值一次 收到两次充值资金 常见问题 RabbitMQ队列数据丢失 • 确保消息持久化,设置durable=True 持久化,delivery_mode=2 指明message为持久 • 处理完后才确认消息 RabbitMQ挂掉 • 流程设计不合理,导致队列之间高频互传, 最后RabbitMQ挂掉 • 使用Redis统计短时间相同订单传递次数 或者在消息体里面添加计数字段,再做相应限制处理 资产为负 资产为负 充一次转双倍 • 如果充值申请状态为“start”,充值完成状态为“done”,页面同 时点两次,请求进入Rabbitmq队列就会处理两次 APscheduler+twisted 4 监控 交易系统一行代码写错,可能损失好几百万 监控 • 首先每一笔资金变动都得有变动前后的值和原因 • 挂单精度是否正确 • 一个账户,一个币种,不算手续费,初略盘点 • 利用订单客观数据(挂单价格,数量,手续费),复现交易,与交 易记录进行对比 • 每个币种,整个资金池的流入和流出是否平衡 • 等等 THANK YOU0 码力 | 21 页 | 1.77 MB | 1 年前3WeRoBot 1.4.0 微信公众号开发框架文档
value type ‘user_pay_from_pay_cell_event’ card_id 卡券 ID。 user_card_code code 序列号。 trans_id 微信支付交易订单号(只有使用买单功能核销的卡券才会出 现)。 location_id 门店 ID,当前卡券核销的门店 ID(只有通过卡券商户助手和买 单核销时才会出现)。 fee 实付金额,单位为分。 original_fee value type ‘card_pay_order_event’ card_id 卡券 ID。 user_card_code code 序列号。 order_id 本次推送对应的订单号。 status 本次订单号的状态。 create_order_time 购买券点时,支付二维码的生成时间。 pay_finish_time 购买券点时,实际支付成功的时间。 desc 支付方式,一般为微信支付充值。 pay_coin_count 剩余付费券点数量。 refund_free_coin_count 本次变动的免费券点数量。 refund_pay_coin_count 本次变动的付费券点数量 order_type 所要拉取的订单类型。 memo 系统备注,说明此次变动的缘由,如开通账户奖励、门 店奖励、核销奖励以及充值、扣减。 receipt_info 所开发票的详情。 SubmitMembercardUserInfoEvent0 码力 | 82 页 | 88.39 KB | 1 年前3WeRoBot 1.6.0 微信公众号开发框架文档
value type ‘user_pay_from_pay_cell_event’ card_id 卡券 ID。 user_card_code code 序列号。 trans_id 微信支付交易订单号(只有使用买单功能核销的卡券才会出 现)。 location_id 门店 ID,当前卡券核销的门店 ID(只有通过卡券商户助手和买 单核销时才会出现)。 fee 实付金额,单位为分。 original_fee value type ‘card_pay_order_event’ card_id 卡券 ID。 user_card_code code 序列号。 order_id 本次推送对应的订单号。 status 本次订单号的状态。 create_order_time 购买券点时,支付二维码的生成时间。 pay_finish_time 购买券点时,实际支付成功的时间。 desc 支付方式,一般为微信支付充值。 pay_coin_count 剩余付费券点数量。 refund_free_coin_count 本次变动的免费券点数量。 refund_pay_coin_count 本次变动的付费券点数量 order_type 所要拉取的订单类型。 memo 系统备注,说明此次变动的缘由,如开通账户奖励、门 店奖励、核销奖励以及充值、扣减。 receipt_info 所开发票的详情。 SubmitMembercardUserInfoEvent0 码力 | 85 页 | 89.26 KB | 1 年前3
共 50 条
- 1
- 2
- 3
- 4
- 5