回溯算法思想解决排列,子集,组合问题汇总 回溯算法思想解决排列,组合/子集的九种(3x3)类型。类型一:元素不重复,不可复选。 类型二:元素可重复,不可复选。 类型三:元素无重复,可复选。 注:1.涉及到回溯算法, 多画递归树去思考如何遍历和剪枝。 2.组合实际是在子集的基础上增加了条件。 3.排列不受序列顺序控制,组合/子集受序列顺序控制。 剪枝技巧说明: 类型一: 1.组合/子集, 使用start参数控制树的高度,避免重复的子集。 2 2022-07-11 算法 算法 回溯
git的cherry-pick合并指定分支 一、背景在开发项目中, 将个人分支的代码合并到主分支, 或者将dev分支合并到release分支是常见的需求。 合并主要分为两种情况,一种是将分支上所有的commit合并到另一分支, 此时使用git merge即可实现。另一种试讲分支上某几个commit合并到另一分支, 此时就需要使用git cherry-pick来实现部分commit的合并。 二、git cherry-pick的基本用法git 2022-06-08 Git Git
基于低频的pHash算法 和 汉明距离 实现图像相似度对比算法 背景在实现基于图像识别技术的桌面端元素捕获功能后,用户录制时捕获好了某张图像上的某个元素,在机器人回放时,需要重新进行图像识别,构建索引结构信息,然后对目标图像和识别后的各图像主体进行相似度比对,选择相似度最高的主体图像,然后基于该图像搜索索引结构,获取该图像的信息,最后,基于pyautogui进行模拟操作。 上述逻辑流程中核心点是图像相似度算法的选择和实现,在搜索了资料后,得出几种特征提取的算法 2022-03-14 图像识别 特征提取算法 相似度算法
源码分析Redis数据结构之ZipList 一、背景 压缩列表是一个由特殊编码的连续内存块组组成,被设计用于节约内存的数据结构。它存储字节数组和整数两种类型的数据节点。 我在看完了《Redis设计与实现》压缩列表这一节以及阅读完ziplist.c源码中头部的注释,对压缩列表的设计有了较深的体会,Redis的设计者简直是把内存使用节约到了极致。今天写篇笔记,记录下学习心得,进一步加深理解。 二、ZipList的数据结构我将压缩列表的数据结构 2022-02-11 C Redis 源码分析 数据结构 源码分析 Redis 数据结构 C
源码分析Redis数据结构之SDS 一、 背景在看了一段时间的《Redis设计与实现》后, 是时候回头仔细阅读下Redis的源码, 写下自己的学习心得, 研究下源码中所体现的数据结构的设计思路。今天, 趁着工作之余, 阅读下SDS相关的源码,学习下SDS设计到的二进制安全、内存的申请分配过程、SDS的空间预分配和惰性空间回收、SDS中为什么采用内存不自动对齐的方式定义多类型的结构体。 二、 Redis的SDS数据结构SDS的数据结构 2022-02-08 C Redis 源码分析 数据结构 源码分析 Redis 数据结构 C
Python项目中Git的hook的使用指南 Python项目使用git钩子的指南:一、钩子介绍:目前我已为当前项目增加三个git钩子,以Python + shell形式实现。分别为format_check.py + pre-commit.sh检验代码风格的钩子,inspect_modules + post-commit.sh模块增量检查钩子, message_check + commit-msg.sh commit的message规则校验钩 2022-01-24 Git Python Python Git
源码分析Redis数据结构之字典 一、 背景最近入手了一本书,《Redis的设计与实现》,在工作的闲暇之际,不断学习,持续给自己充能。在阅读前,拉了GitHub上的源码,准备结合这源码进行阅读。在阅读到字典的实现这一章节,回想起之前分析Python字典实现的源码过程,字典的数据结构存在着些许相似和不同。特此做一篇笔记分析下Redis字典涉及的数据结构及使用场景,对比Python的字典,有哪些不同的地方。 注:1.本篇文章分析的Re 2022-01-21 C Redis 源码分析 数据结构 源码分析 Redis 数据结构 C
57.插入区间 题目:给你一个 无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 例子 123输入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]输出:[[1,2],[3,10],[12,16]]解释:这是因为新的区间 [4,8] 2022-01-20 算法 算法 迭代
Asyncio处理网络IO的练习 一、 使用Asyncio处理多协程的网络I/O, 请求获取商品信息数据123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 2022-01-10 Asyncio Python Asyncio Python
源码分析Python的GIL解释器锁的构造与实现 一、 背景之前写过一篇笔记,从理论上学了了GIL解释器锁,文章地址:深入探究GIL的利与弊。当时使用的Python版本比较旧,可能与当前文章中部分源码说明有出入。 今天通过深挖源码,学习下Python底层是如何实现GIL解释器锁,分析下GIL 解释器锁的构造与应用, 探寻为什么这把GIL锁锁的是字节码。本篇笔记使用的Python版本为3.11.0 alpha 0。 二、GIL锁的构造1.GI 2022-01-04 C Python 源码分析 数据结构 Python 源码分析 数据结构 C