自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

浮云

计算机领域的任何问题都可以通过增加一个间接的中间层来解决

  • 博客(26)
  • 收藏
  • 关注

原创 Dockerfile 制作镜像

Dockerfiledockerfile 的定义dockerfil 是构建镜像的文本文件,就是指令文件(脚本文件)。docekerfile 文件结构指令说明ADD$ add [--chown=<user>:<group>] <src>... <dest>eg: add hom* /mydir/ # 把宿主机hom 开头的目录下所有文件 添加到镜像中的mydir目录下add 如果添加的压缩包会自己解压COPY$ COPY [

2021-06-25 12:23:54 215 1

原创 虚拟机 ubuntu 连不上网络

第一步,先检查ubuntu 中的网络服务是否开启了。检查方法ifconfig 下只有回环地址。也就是查看右上角是否有网络图标,如图。没有的话是网络没有开启。第二步 先停止网络服务,在删除配置文件的缓存,然后启动网络服务。在root 权限下,执行如下命令,执行完之后重启。service network-manager stop && rm -rf /var/lib/NetworkManager/NetworkManager.state && servic.

2021-06-23 17:51:22 6590 3

原创 字符异位词分组(leetcode)

给定一个字符串数组,将字母异位词组合在一起,字母异位词指字母相同但排列不同的字符串。思路 排序后字符串时相同的。代码如下class Solution: def groupAnagrams(self,strs): total,str_len = [],len(strs) for i in range(str_len ): if strs[i] == "-": continue item = [strs[i]] for j in range(i+1,str_le.

2021-06-22 17:40:28 126

原创 无重复字符的最长字串(leetcode)

给定一个字符串,请你找出其中不含有重复字符的最长字串的长度。思路双指针和哈希映射,存储字符出现的下标。当字符串重复时,更新第一个指针。代码如下:class Solution: def lengthOfLongestSubstring(self, s): tmp_dict = {} start, end, max_len = 0, 0, 0 for index, value in enumerate(s): if value in tmp_dict: if start .

2021-06-21 16:46:30 86

原创 django 模板报错context must be a dict rather than Context.

使用django 模板时报错。事故现场如图:1 从头可以看出传参的数据类型不对,但是我明明传的是字典啊,t.render(Context({“date”:now}))2 继续往上看报错的第64行说明我传的确实不是字典。3 在往上看33 行,t.render(Context({“date”:now})),从下图中可以看出context 是个字典。我有打印了一下t ,t 是一个<django.template.backends.django.Template object at 0x0000.

2021-06-21 00:17:33 221

原创 解压报文(python)

解压报文 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限为了提升数据传输的效率,会对传输的报文进行压缩处理。输入一个压缩后的报文,请返回它解压后的原始报文。压缩规则:n[str],表示方括号内部的 str 正好重复 n 次。注意 n 为正整数(0 < n <= 100),str只包含小写英文字母,不考虑异常情况。" “输入描述:输入压缩后的报文:1)不考虑无效的输入,报文没有额外的空格,方括号总是符合格式要求的;2)原始报文不包含数字,所有的数字只表示重复的.

2021-06-19 08:34:44 4001 8

原创 解密犯罪时间

解密犯罪时间 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限警察在侦破一个案件时,得到了线人给出的可能犯罪时间,形如 “HH:MM” 表示的时刻。根据警察和线人的约定,为了隐蔽,该时间是修改过的,解密规则为:利用当前出现过的数字,构造下一个距离当前时间最近的时刻,则该时间为可能的犯罪时间。每个出现数字都可以被无限次使用。""输入描述:形如HH:SS的字符串,表示原始输入输出描述:形如HH:SS的字符串,表示推理出来的犯罪时间示例1输入18:52输出18:55说.

2021-06-15 20:26:59 4115 9

原创 删除链表中重复的元素(leetcode)

存在一个按升序排列的链表,给你这个链表的头节点head,请你删除所有重复的元素,使每一个元素只出现一次。思路:升序,值相等,指向下下个元素。class Solution: def deleteDuplicates(self,head): if not head: return pre = head while head: nowval = head.val while head.next and head.next.val == nowval: head.

2021-06-14 20:52:31 123

原创 最小路径和(leetcode)

给定一个包含非负整数的mxn 网络grid,请找出一条从左上角到右上角的路径,使路径上的数字总和为最小。思路: 利用一个二维数组存储移动的最小数字之和。代码:class Solution: def minPathSum(self,grid): if not grid or not gird[0]: return 0 rows,cols = len(gird),len(grid[0]) dp = [[0]*cols for _ in range(rows)] dp[0][0] =.

2021-06-14 19:33:33 161

原创 git clone 时报错 Incorrect username or password (access token)

这个原因呢,你换电脑了,或者你的仓库地址的路径发生了变化,你的windows本地依然使用你的就的凭据。解决方法,在控制面板中找到windows凭据,添加或者修改原有的凭据,即可下载。具体步骤如下:1打开你的windows 控制面板...

2021-06-13 09:13:50 1397

原创 爬楼梯(leetcode)

假设你正在爬楼梯,需要 n 阶才能到达楼顶每次你可以爬1或2 个台阶,你有多少种不同的方法可以爬到楼顶?爬的次数是前两项次数之和 f(n) = f(n)-1 + f(n -2)代码如下:class Solution: def climbStairs(self,n): a,b,i = 0, 1, 0 res = [] while i < n: a, b = a+b, a res.append(a) i+=1 return sum(res[n-2:]) .

2021-06-12 18:39:29 186

原创 协程爬虫(python)

协程的调度和销毁由程序自己控制,而且比较轻量级也更加灵活。其实是根据生成器来实现的。python 中的协程库asyncio。代码如下:import asyncioimport requestsheaders = { "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36 Edg/91..

2021-06-11 22:19:45 758 2

原创 redis 计数器的使用(python)

redis 的计数器功能的使用,python 需要安装 pip install redis代码如下:import redisclass CountRedis(object): def __init__(self, host="localhost", port=6379, password=None, db=0): """ :param host: 主机ip :param port: 运行端口 :param password:.

2021-06-11 14:12:17 966 3

原创 最大的字序和(leetcode)

给定一个数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素,返回其最大和)输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6思路:记录当和前值的最大值,和 当前值比较,把小的丢弃。并且去更新和的最大值。代码如下:class Solution: def maxSubArray(self,nums): if not nums: return cur_sum = max_sum = nums[0] for i in range.

2021-06-10 07:38:10 152

原创 反转链表(leetcode)

题目描述定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。思路 :新增一个空 节点,让头节点指向空节点,依次取改变下一个节点的指向。代码如下:class Solution: def reverseList(self, head): pre,cur = None,head while cur: next_node,cur.next = cur.next,pre cur.pre = next_node,cur return pre...

2021-06-07 17:31:31 114

原创 二叉树的镜像(leetcode)

完成一个函数,输入一个二叉树,该函数输出它的镜像思路在二叉树的前序遍历中交换左子树和右子树代码如下class TreeNode: def __init__(self,x): self.val = x self.left = None self.right = Noneclass Solution: def mirrorTree(self.root): """递归版""" if root: root.left, root.right = root.right, .

2021-06-07 14:18:01 180

原创 二叉树的层序遍历(leetcode)

题目描述给你一个二叉树,请你返回其按层序遍历得到得节点值,即逐层地,从左到右访问所有节点代码如下class Solution: def leveOrder(self,root): if not root: return [] res = [] cur = [root] next = [] # 保存当前节点的值 res.append([i.val for i in cur:]) while cur or next: for node in cur.

2021-06-07 13:19:19 148

原创 使用栈来实现队列(leetcode)

使用两个栈来实现队列。栈先进后出队列先进先出思路利用两个栈逆序两次,就可以达到队列的效果,取值时,保证第一个栈为空,第二个栈顶的元素就是最先入队列的值代码如下class Stack(object): def __init__(self): self.items = [] def push(self,val): self.items.append(val) def pop(self): return self.items.pop() def pe.

2021-06-07 13:00:30 150

原创 回文链表(leetcode)

题目描述编写一个函数,检查输入的链表是否是回文的。思路: 遍历链表,入栈的逆序。在次遍历链表一一比对,不相等,则不是回文的。代码如下:class ListNode: def __init__(self,x): self.val = x sel.next = Noneclass Solution: def isPalindrome(self,head): stack = [] cur = head while head: stack.append(head.va

2021-06-06 23:31:11 56

原创 二叉树的前序,中序,后序遍历(python)

二叉树的前序,中序,后序 遍历遍历的根据就是根节点访问的时机前序遍历根左右中序遍历左根右后序遍历左右根代码如下:# -*-coding:utf-8 -*-# Time :2021/6/6 18:31class Stack: def __init__(self): self.items = [] def isEmpty(self): return self.items == [] def push(self, item.

2021-06-06 22:19:53 86

原创 螺旋矩阵(leetcode)

给你一个 m行 n 列的矩阵matrix,请按照顺时针螺旋顺序,返回矩阵中的所有元素先打印四个边,然后把边缩小。代码入下:class Solution: def printEdge(self, m, tR, tC, dR, dC): if tR == dR: # 边缘缩小 for i in range(tC, dC + 1): #print(m[tR][i]) self.res.ap.

2021-06-06 16:59:35 144

原创 归并排序python

-归并排序:对序列的元素进行逐层分组,然后从最小分组开始比较排序,合并成一个大的分组,逐层进行合并。代码如下:def merge_sort(arr): def merge_sorted_list(array1, array2): length_1, length_2 = len(array1), len(array2) index1, index2 = 0, 0 res = [] while index1 < length_

2021-06-05 19:42:01 113

原创 堆排序python

堆排序:利用堆这中数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,子节点的键值总是小于它的父节点。创建一个大根堆,把堆顶的元素和堆底的元素互换。堆的尺寸缩小1,在进行heapify操作,在进行互换操作,一直到堆的尺寸为0。如果你建的是大根堆,升序排列。小根堆,降序排列。代码如下:def heapSort(arr): def swap(arr,largest,index): """交换两个变量的值""" arr[largest],arr[index] = arr[ind.

2021-06-05 19:27:19 51

原创 LRUCache (替换掉最近最少使用的对象)

LRU 通过使用一个循环双端队列不断把最新访问的key放到表头,把最远的访问保持在尾部(左边),把最远访问的key 剔除就可以了。缓存剔除策略。from collections import OrderedDictclass LruCache(object): def __init__(self,capacity=10): self.od = OrderedDict() # 有序字典 self.capacity = capacity def get(self,key): if ke.

2021-06-04 20:32:16 228

原创 子集(leetcode)

给你一个整数数组nums,数组中的元素互不相同,返回该数组所有可能的子集(幂集)。解集不能包含重复的子集,你可以按任意顺序返回解集。解法一:回溯class Solution: def subsets(self,nums): res = [] def dfs(index,tmp): res.append(tmp) for i in range(index,len(nums)): dfs(i+1,tmp+[nums[i]) dfs(0,[]) return res解.

2021-06-01 23:15:25 174

原创 全排列(leetcode)

给定一个没有重复数字的序列,返回器所有可能的全排列回溯代码如下:class Solution: def permute(self, nums): def backtrack(first=0): if first == n: res.append(nums[:]) for i in range(first,n): nums[first],nums[i] = nums.

2021-06-01 00:29:31 170

空空如也

空空如也

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

TA关注的人

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