自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 Python实现LRU缓存(LeetCode 146. LRU缓存机制)

146. LRU缓存机制如图,要实现一个LRU缓存。LRU缓存要支持O(1)时间复杂度的get和put操作,同时还有保证当缓存容量达到上限的时候,删除最久未使用的数据。要想实现题目中给定的要求,需要同时使用哈希表和双链表这两种数据结构。使用哈希表保存key和对应双链表节点node,可以保证在O(1)时间复杂度内找到指定key的节点,同时能够返回节点的值value。而对于给定节点node的情况下,双链表可以在O(1)时间复杂度内完成删除和添加node到链表中,单链表无法做到O(1)。具体代码如下。

2020-06-10 23:16:39 725

原创 1208. 尽可能使字符串相等(滑动窗口)

1208. 尽可能使字符串相等class Solution: def equalSubstring(self, s: str, t: str, maxCost: int) -> int: left, right, res, cost = 0, 0, 0, 0 while right < len(s): # 统计转化当前字符所需开销 cost += abs(ord(s[right]) -

2020-06-26 19:39:57 174

原创 76. 最小覆盖子串

以下内容来自labuladong的算法小抄"""给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字符的最小子串。示例:输入: S = "ADOBECODEBANC", T = "ABC"输出: "BANC"说明:如果 S 中不存这样的子串,则返回空字符串 ""。如果 S 中存在这样的子串,我们保证它是唯一的答案。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/minimum-window-subst

2020-06-18 01:09:30 203

原创 获取数组中的最大值和次大值以及最小值和次小值

昨天参加LeetCode的周赛的时候,写代码的过程中遇到了需要获取遍历过程中出现的最小值和次小值的场景。由于之前没有认真思考过这个逻辑,导致当时浪费了不少时间。现在把这个逻辑好好梳理一下。下面以最小值和次小值为例。首先需要声明两个变量first_min, second_min = float('inf'), float('inf')如果当前元素n小于first_min, 说明n是目前已知的最小值,但是不能直接更新最小值,因为还需要维持次小值,因此,需要先把当前最小值赋值给次小值,然后再把当前元素

2020-06-14 18:38:14 1553

原创 739. 每日温度(Leetcode每日一题2020-06-11)

739. 每日温度暴力解法(超时)class Solution: def dailyTemperatures(self, T: List[int]) -> List[int]: n = len(T) res = [] # 逐个遍历 for i in range(n-1): for j in range(i+1, n): if T[i] < T[j]:

2020-06-11 01:06:31 138

原创 9. 回文数(Python)

LeetCode今天的每日一题(2020-06-10)如下,判断一个数字是否是回文数。传送门注意题目的最后又一个进阶提示:你能不将整数转为字符串来解决这个问题吗?。也就是说你可以把数字先转为字符串,然后通过判断这个字符串是否是回文字符串来判断给定的数字是否是回文数。那我们先来看看如何判断一个字符串是否回文。如果是判断一个字符串是否回文的话,最直接的思路就是通过双指针,同时从字符串的头部和尾部进行检查,如果有一对字符不同就可以直接断定这个字符串非回文串。如果循环结束,都没有发现不同的字符对的话,就说明是

2020-06-10 01:33:30 808

原创 二叉树的前序遍历(递归+迭代)

使用前序遍历输出二叉树的节点值144. 二叉树的前序遍历没啥可说的,直接看代码吧递归法# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def preorderTraversal(self

2020-06-09 23:50:17 278

原创 Unix操作系统的进程管理工具--Supervisor

Supervisor是一款用Python2编写的管理服务进程的开源工具。博主一般用它来管理在Linux上部署的Python进程。Supervisor管理进程的操作十分简单,只需要在配置文件中,配置好要管理的进程,然后启动Supervisor守护进程即可。而对进程的管理则可以在其提供的web页面上进行操作。目前版本的Supervisor只支持Python2,也就是说,目前只能在Python2环境下运...

2018-11-16 22:37:22 176

原创 Numpy中的argsort函数详解

前几天在别人的代码中看到了argsort这个函数,当时不太明白这个函数到底是做什么的。然后就在网络搜了一下,打开几篇博客,都是转载的,要不就是翻译官方文档,看了几篇愣是没看明白。费了好大劲,搞清楚这个函数的意思了。所以特地写篇博客,希望能够讲清楚这个函数的用处。首先我们构造一个numpy数组import numpy as npa = np.array([10, 2, 7])我们对数组a按...

2018-09-28 23:20:30 798

空空如也

空空如也

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

TA关注的人

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