自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(149)
  • 资源 (1)
  • 收藏
  • 关注

原创 Go 基于chan 管道生成素数

【代码】Go 基于chan 管道生成素数。

2023-05-26 16:02:21 141

原创 Python 用装饰器类实现方法重载

【代码】Python 用装饰器类实现方法重载。

2023-05-26 15:29:28 202

原创 Python自己实现namedtuple

【代码】Python自己实现namedtuple。

2023-05-26 14:59:26 130

原创 Python用元类实现缓存实例

【代码】Python用元类实现缓存实例。

2023-05-26 14:37:28 72

原创 Python用元类实现单例

【代码】Python用元类实现单例。

2023-05-26 14:25:33 46

原创 Python实现一个参数类型检查装饰器

【代码】Python实现一个参数类型检查装饰器。

2023-05-26 14:16:25 78

原创 Django 4.0.6源码分析:自动重启机制

最近在研究Django框架,同样也有自动重启的功能,这次我们就来研究一下吧。runserver对应的实例就是django.core.management.commands.runserver.Command实例,下面分析。由上可见,pythonmanage.pyrunserver根据runserver命令,去寻找并构造了特定的实例来执行具体逻辑。发现监测文件改动并自动重启的逻辑在django/utils/autoreload.py中,下面重点研究。先看下manage.py的代码。.........

2022-07-20 14:54:02 1135

原创 Flask1.1.4 Werkzeug1.0.1 源码分析:蓝图

Blueprint原理分析

2022-07-12 14:36:26 413

原创 Flask1.1.4 Werkzeug1.0.1 源码分析:请求和响应

flask 请求和响应

2022-07-11 13:47:09 403

原创 Flask1.1.4 Werkzeug1.0.1 源码分析:上下文

flask源码分析 上下文

2022-07-09 13:47:19 402

原创 分布式系统数据分布的几种方式

哈希、按范围分布、一致性hash

2022-07-08 13:52:43 1051

原创 Flask1.1.4 Werkzeug1.0.1 源码分析:路由

flask

2022-07-07 14:08:59 354

原创 Flask1.1.4 Werkzeug1.0.1 源码分析:启动流程

flask

2022-07-06 10:55:37 2344

原创 全排列 II (Python)

全排列2

2022-06-25 18:17:35 177

原创 全排列 (Python)

全排列

2022-06-24 18:16:37 578

原创 组合 (Python)

组合

2022-06-15 10:03:56 2140

原创 从前序和中序遍历序列构造二叉树 (Python)

从前序和中序序列构造二叉树

2022-06-14 18:06:03 431

原创 二叉树的最近公共祖先 (Python)

二叉树的最近公共祖先

2022-06-10 18:07:50 619

原创 二叉树的序列化与反序列化 (Python)

二叉树的序列化与反序列化

2022-06-08 17:59:27 417

原创 二叉树的最小深度 (Python)

二叉树的最小深度

2022-06-08 16:55:41 364

原创 二叉树的最大深度 (Python)

二叉树的最大深度

2022-06-07 21:46:10 78

原创 验证二叉搜索树 (Python)

验证二叉搜索树

2022-06-07 17:59:39 2149

原创 翻转二叉树 (Python)

翻转二叉树

2022-06-07 16:23:58 104

原创 括号生成 (Python)

LeetCode链接首先考虑生成所有的情况,每一次都在之前的基础上加上一个左括号或者右括号,直到达到2n的长度为止在生成的途中加入有效性的判断:

2022-06-01 21:30:56 373

原创 N叉树的层序遍历 两种方法 (Python)

队列"""# Definition for a Node.class Node: def __init__(self, val=None, children=None): self.val = val self.children = children"""class Solution: def levelOrder(self, root: 'Node') -> List[List[int]]: if not root:

2022-05-29 16:05:28 1009

原创 二叉树的层序遍历

使用队列# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: def levelOrder(self, root: TreeNode) -&

2022-05-29 15:46:11 89

原创 N叉树的前、后序遍历 (Python)

递归后序"""# Definition for a Node.class Node: def __init__(self, val=None, children=None): self.val = val self.children = children"""class Solution: def postorder(self, root: 'Node') -> List[int]: res_list = []

2022-05-29 14:03:07 522

原创 二叉树的前、中、后序遍历 两种解法(Python)

递归 时间复杂度 O(N)# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: def inorderTraversal(self, roo

2022-05-28 15:07:59 111

原创 字母异位词分组 两种解法 (Python)

排序作为dict的键 时间复杂度 O(n * klogk)class Solution: def groupAnagrams(self, strs: List[str]) -> List[List[str]]: dic = collections.defaultdict(list) for str in strs: dic[''.join(sorted(str))].append(str) return list(di

2022-05-25 17:41:02 110

原创 有效的字母异位词 四种解法(Python)

排序 时间复杂度 O(NlogN)class Solution: def isAnagram(self, s: str, t: str) -> bool: return len(s) == len(t) and sorted(s) == sorted(t)使用 26位的数组 时间复杂度 O(N)class Solution: def isAnagram(self, s: str, t: str) -> bool: if len(s) !

2022-05-25 17:14:55 142

原创 接雨水 四种解法(Python)

单调栈 时间复杂度O(N)class Solution: def trap(self, height: List[int]) -> int: indexStack = [] sum = 0 for i in range(len(height)): while indexStack and height[i] > height[indexStack[-1]]: bottom = in

2022-05-18 22:16:56 1294

原创 设计循环双端队列 两种解法(Python)

数组实现class MyCircularDeque: def __init__(self, k: int): ''' front last 都从0开始 front始终指向第一个元素的位置,从队首插入 先循环前移front再插入 last 指向最后一个元素的下一个的位置,从队尾插入,先存值,再后移last ''' self.front = 0 self.last = 0

2022-05-17 21:13:21 260

原创 滑动窗口最大值 两种解法(Python)

暴力法 时间复杂度 O(N*K)class Solution: def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]: res = [] for i in range(len(nums) - k + 1): res.append(max(nums[i:i + k])) return res单调队列 时间复杂度 O(N)class Solu

2022-05-17 10:02:53 646

原创 柱状图中最大的矩形 两种解法 (Python)

暴力法1:两重循环遍历 时间复杂度 O(N^3)class Solution: def largestRectangleArea(self, heights: List[int]) -> int: heightsLen = len(heights) maxArea = 0 # 此处i需要遍历数组中的全部值 for i in range(heightsLen): for j in range(i, hei

2022-05-15 16:19:22 2419

原创 最小栈 一种解法(Python)

使用辅助栈 时间复杂度 O(1)非同步栈class MinStack: def __init__(self): self.stack = [] self.min_stack = [] def push(self, val: int) -> None: self.stack.append(val) if not self.min_stack or val <= self.min_stack[-1]:

2022-05-11 21:41:03 209

原创 有效的括号 两种解法(Python)

暴力替换 时间复杂度 O(N^2)class Solution: def isValid(self, s: str) -> bool: if len(s) % 2 == 1: return False while True: startLen = len(s) s = s.replace('[]','') s = s.replace('{}','')

2022-05-10 21:56:00 200

原创 加一 一种解法(Python)

逆序找出第一个不为9的数 加一 其后所有位置0 若都为9 则直接变为 [1,0,0…]class Solution: def plusOne(self, digits: List[int]) -> List[int]: for i in range(len(digits) - 1, -1, -1): if digits[i] != 9: digits[i] = digits[i] + 1

2022-05-06 20:38:51 586

原创 合并两个有序数组 三种解法(Python)

直接合并然后排序 时间复杂度 O((m + n)log(m + n))class Solution: def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None: """ Do not return anything, modify nums1 in-place instead. """ nums1[m:] = nums2

2022-05-06 18:17:30 3367

原创 合并两个有序链表 两种解法(Python)

迭代 时间复杂度 O(n + m)# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[

2022-05-06 17:34:19 813

原创 轮转数组 三种解法(Python)

LeetCode链接使用额外的数组 时间复杂度O(N) 空间复杂度O(N)class Solution: def rotate(self, nums: List[int], k: int) -> None: """ Do not return anything, modify nums in-place instead. """ new_nums = nums[:] nums_len = len(nums)

2022-05-05 18:23:50 887 1

Java性能优化.png

《Java性能优化权威指南》读书笔记(脑图) 原图,看不清楚可以下载这个

2019-10-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除