队列的内置模块(deque)--双向队列

博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- from collections import deque q = deque([1,2,3,4,5], 5) q.append(6) # 队尾进队 print(q.popl

利用队列的内置模块(deque)模拟 Linux 下的 tail 命令(输出文件中最后几行的内容)

博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- from collections import deque def tail(n): # n:指定输出文件中最后几行 with open('test.txt', 'r') a

使用栈解决迷宫问题(深度优先搜索 / 回溯法)

博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- maze = [ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 1, 0, 0, 0, 1, 0, 1], [1, 0, 0, 1, 0

使用队列解决迷宫问题(广度优先搜索 / 最短路径)

博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- from collections import deque maze = [ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 1, 0,

链表的创建&遍历打印

博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- class Node: def __init__(self, item): self.item = item self.next = None # 头插法 def creat

哈希表(实现 Python 中的集合 set)

博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- class LinkList: class Node: def __init__(self, item=None): self.item = item self.next =

树的实例--模拟文件系统

博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- class Node: # 链式存储 def __init__(self, name, type='dir'): self.name = name self.type = t

二叉树的遍历

博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- from collections import deque class BiTreeNode: def __init__(self, data): self.data = d

二叉搜索树 / 二叉排序树

博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- # 构造二叉树 class BiTreeNode: def __init__(self, data): self.data = data self.lchild = None

贪心算法--找零问题

博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- t = [100, 50, 20, 5] def change(t, n): m = [0 for _ in range(len(t))] # m 为各面额纸币的张数 for

贪心算法--背包问题--分数背包

博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- stuffs = [(60, 10), (100, 20), (120, 30)] # 每个商品元组表示(价格, 重量) stuffs.sort(key=lambda x:

贪心算法--拼接最大数字问题

博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- from functools import cmp_to_key def xy_cmp(x, y): if x + y < y + x: return 1 # 表示 x>y

贪心算法--活动选择问题

博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- def activity_selection(a): res = [a[0]] for i in range(1, len(a)): if a[i][0] >= res[-1

动态规划--斐波那契数列

博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- # 子问题的重复计算--递归方法--执行效率低 def fibnacci(n): if n == 1 or n == 2: return 1 else: return fib

动态规划--钢条切割问题

博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- import time def cal_time(func): def wrapper(*args, **kwargs): t1 = time.time() result =

动态规划--最长公共子序列( LCS 问题)

博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- # 最长公共子序列的长度 def lcs_length(x, y): m = len(x) n = len(y) c = [[0 for _ in range(n + 1)]

欧几里得算法(辗转相除法)-- 计算两个数的最大公约数

博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- # 递归 def gcd(a, b): if b == 0: return a else: return gcd(b, a % b) print(gcd(12, 16)) #

欧几里得算法(辗转相除法)-- 实现分数计算

博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- """ 利用欧几里得算法实现一个分数类,支持分数的四则运算(加法) """ class Fraction: def __init__(self, a, b): self.a

[转帖]JVM——内存区域:运行时数据区域详解

https://www.jianshu.com/p/cded765cfd1b 关注:CodingTechWork,一起学习进步。 引言 我们经常会被问到一个问题是Java和C++有何区别?我们除了能回答一个是面向对象、一个是面向过程编程以外,我们还会从底层内存管理和垃圾收集方面作出比较。 对于C++

[转帖]Linux—CPU核数、上下文切换介绍及pidstat等命令详解

https://www.jianshu.com/p/0ae0c1153c34 关注:CodingTechWork,一起学习进步。 引言 并发编程 并发编程的目的是为了改善串行程序执行慢问题,但是,并不是启动更多线程就能够让程序执行更快。因为在并发时,容易受到软硬件资源等限制,从而导致上下文切换慢,频