TOP

随笔分类 -  ① Py - 其他 - 算法

摘要:基础通用装饰器 源码示例 def wrapper_out(func): print('-- wrapper_out start --') def inner(*args, **kwargs): print("-- inner start --") ret = func(*args, **kwargs 阅读全文
posted @ 2022-04-24 14:51 羊驼之歌 阅读(74) 评论(0) 推荐(0) 编辑
摘要:汉诺塔问题 题意 将A 柱子上的块转移到 C 上 条件1 - 每次只能转移一块 条件2 - 大块不能压小快 解析 概念原理 冰箱装大象问题 : 1. 打开冰箱 2. 放入大象 3. 关上冰箱 类比在 任何一个块 n 来说: 1. 把上面的块都移动好 2. n 块移动过去 3. 之前上面的块在放在 n 阅读全文
posted @ 2020-03-31 18:02 羊驼之歌 阅读(272) 评论(0) 推荐(0) 编辑
摘要:递归原理 形式 - 函数内部调用函数本身 递 - 函数之间的传递参数 归 - 自动完成 终止 - 递归停止的条件 斐波那契数列 此案例可以延申很多。 类似兔子繁殖问题, 上楼梯问题等等 递归的方式实现 递归的方式是逆向的, 往后递归倒最底层的 1+1 上再一层一层返回到低 k 层上的进行累加 原理图 阅读全文
posted @ 2020-03-31 16:23 羊驼之歌 阅读(1036) 评论(0) 推荐(0) 编辑
摘要:插入排序 算法分析 两次循环, 大循环对队列中的每一个元素拿出来作为小循环的裁定对象 小循环对堆当前循环对象在有序队列中寻找插入的位置 性能参数 空间复杂度 O(1) 时间复杂度 O(n^2) 详细代码解读 简单实例 冒泡排序 算法分析 两两比较, 每次比较出一个未排序队列的最大值,让只在队列右侧排 阅读全文
posted @ 2019-05-25 15:27 羊驼之歌 阅读(1912) 评论(0) 推荐(0) 编辑
摘要:基于 __new__ 方式 详情点击这里 - __new__ 以及单例模式 基于装饰器方式 基于导入方式 详情点击这里 - Django_基于模块的单例模式 阅读全文
posted @ 2019-05-24 17:54 羊驼之歌 阅读(127) 评论(0) 推荐(0) 编辑
摘要:二叉树 概念 二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树), 或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树组成。 特点 每个结点最多有两颗子树,所以二叉树中不存在度大于2的结点 左子树和右子树是有顺序的,次序不能任意颠倒 即使树中某结点只有一棵子树,也 阅读全文
posted @ 2019-05-15 17:12 羊驼之歌 阅读(1440) 评论(0) 推荐(0) 编辑
摘要:题目 查询多个字典中的公共键, 题目实例 每轮比赛 6个人 都有可能得分, 3轮下来都得分的有谁? 每轮比赛 6个人 都有可能得分, n 轮下来都得分的有谁? 解析 思路一 遍历第一轮的记录, 用键来比对二轮,三轮都有此键的情况进行记录 稍微有点啰嗦, 执行效率不是很好, 而且对于 n 的处理也比较 阅读全文
posted @ 2019-05-14 21:51 羊驼之歌 阅读(106) 评论(0) 推荐(0) 编辑
摘要:题目 实现对一个字典的值进行排序 解析 思路一 sorted 只能对字典的 键进行排序, 吧字典的键,值分开然后重新换个位置进行排序 但是 sorted 对字典排序后的结果就只剩下键了. 因此此方法不行 思路二 基于思路一的问题, 为了解决不会丢失值的问题, 只能吧键和值分开保存,然后在组合在一起 阅读全文
posted @ 2019-05-14 21:13 羊驼之歌 阅读(172) 评论(0) 推荐(0) 编辑
摘要:题目 找出一个序列中出现频率最高的三个数 解析 思路一 创建一个新字典, k 为 序列的值, 然后 v 的初始值 0, 然后循环序列进行计数, 然后进行新字典的处理..... 不行, 不好处理了. 此思路不行 思路二 利用 colletctions 的 Counter 模块, 内部有个方法可以解决 阅读全文
posted @ 2019-05-14 17:27 羊驼之歌 阅读(219) 评论(0) 推荐(0) 编辑
摘要:题目 题目:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它 阅读全文
posted @ 2019-05-02 16:52 羊驼之歌 阅读(143) 评论(0) 推荐(0) 编辑
摘要:题目 题目:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 解析 思路1 这一题应用堆排序算法复杂度只有O(nlog k),堆是完全二叉树的一种,最大堆就是最上面的数是最大的该方法基于二叉树或者堆来实现,首先把数组前k个数字 阅读全文
posted @ 2019-05-02 16:45 羊驼之歌 阅读(201) 评论(0) 推荐(0) 编辑
摘要:题目 题目:请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 思路 思路:引入两个辅助存储空间。一个Dict存储当前出现的字符以及字符出 阅读全文
posted @ 2019-05-02 16:31 羊驼之歌 阅读(151) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示