自定义博客皮肤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)
  • 收藏
  • 关注

原创 饥荒开服(含各种踩雷)

饥荒开服(含各种踩雷)纯小白,用过Mac电脑.这就是我全部Linux基础了,结果搭建了一个上午才勉强搭出来.所以我在这里分享一下我自己的搭建过程…把那些踩雷过程整理出来, 本人使用阿里云的Ubuntu 18.04 64位的服务器,其他没用过也不知道,所以只会把我的安装过程放在上面,但会把出错误的各种情况列出来安装步骤安装依赖下载steamcmd下载饥荒服务器在klei官网开服在本人的电脑上开档并上传到服务器编写shell开服1.安装依赖这一步是最艰难的,你根本想不到要装一些什么才能

2021-08-16 16:43:48 2040

原创 利用位运算来记录数据

利用位运算来记录数据现在有一种情况, 我们要在n张图片中选出m个并排在一排, 并对每一种情况进行打分,那么怎么记录这些分数呢?这个时候我们就可以用位运算来处理.score = [0] * (1 << N)例如说,我们在六张图片中选择1 3 5张,这个分数是10分,那我们就可以这么储存score[0b101010] = 10使用一个二进制数,就可以很轻松的储存这种情况,这样对时间空间的利用都很少使用技巧与方法可以发现,这种储存方式,相当于是储存了一个集合,对集合的常见操作有查找,增

2021-08-13 19:12:00 233

原创 CCF第一题作答整理

CCF第一题作答整理跳一跳L = [int(x) for x in input().split(' ')]fore = 0sum = 0for i in L: if(i==0): break if(i==1): sum+=1 fore = 0 if(i==2): fore+=2 sum+=foreprint(sum)最小差值int main(){ int n; cin

2021-08-11 22:10:07 237

原创 堆排序(Python实现)

堆排序(Python实现)堆的定义堆是一颗完全二叉树完全二叉树:一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同,则这棵二叉树称为完全二叉树。说白了就是这棵树除了最后面,前面都是满的,就像这样然后堆这颗二叉树有什么特点呢?如果一颗完全二叉树里任意一个节点都比他的两个子节点要大,那么这棵树称为大根堆反之,称为小根堆列表的堆化众所周知(),一颗完全二叉树可以用一个列表直接表示

2021-08-10 22:56:34 979 1

原创 编程技巧:滑动窗口

编程技巧:滑动窗口滑动窗口是dp的一种特例,是指某个结构中存在一个大小固定的"窗口"向某一个移动.这种dp就称为滑动窗口,例如说在数组中, 他的窗口可能就是两个指针,指针包住的部分就是窗口例题例如说在[力扣3. 无重复字符的最长子串], 就是一个很经典的滑动窗口的题目原题地址 https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/当你找到其中一个无重复子串的时候,这时无论你怎么缩小这个窗口

2021-08-09 10:34:22 244

原创 刷力扣学习分治[leetcode53. 最大子序和][leetcode105. 从前序与中序遍历序列构造二叉树][leetcode108. 将有序数组转换为二叉搜索树]

刷力扣学习分治分治是一种很常见的思路,把一个大问题分解成一个一个小问题,这在很多算法里都有体现,循环和递归都能实现这种算法,可以通过分治来学习怎么用循环和递归实现各种算法#53.最大子序和class Solution: def maxSubArray(self, nums: List[int]) -> int: S = 0 maxS = nums[0] for i in nums: if S < 0:

2021-08-07 17:13:42 104

原创 刷力扣学习贪心算法[leetcode45. 跳跃游戏 II]

刷力扣学习贪心算法4

2021-08-06 21:09:09 117

原创 刷力扣学二分查找[leetcode33. 搜索旋转排序数组]

刷力扣学二分查找[leetcode33. 搜索旋转排序数组]二分查找适用于一个有序的列表里查找某个元素,每次将列表中间与要查找的元素比较,这样就能排除一半的剩余选项,因此查找速度非常快,是O(logn)的时间复杂度就像快速排序,它的速度快就是因为有二分查找在里面,它的速度是O(nlogn)。所以说,如果想要优化一个O(n*n)的算法时,可以先快排,再二分查找,这样速度就优化成O(nlogn)了二分查找思路很简单,也很常用。因此最好把它的用法直接记下来33. 搜索旋转排序数组原题链接https:

2021-08-05 11:30:25 86

原创 使用pynput 监视与控制键盘与鼠标

使用pynput 监视与控制键盘与鼠标pynput是python的第三方库,可以监视与控制鼠标与键盘,使用起来也很方便综述pynput有两个子包,每个包又有几个类controller 和listener储存控制器和监视器,button和key储存特殊对象,像按键什么的使用起来更简单,下面是这些的使用用法mouse控制过程from pynput.mouse import Controller,Listener,Button#先实现一个对象mc = Controller()mc.mov

2021-08-04 15:28:37 385

原创 无pygame写一个python贪吃蛇

无pygame写一个python贪吃蛇这个贪吃蛇是以pynput来监视键盘,os来刷新屏幕,以此实现的贪吃蛇蛇的结构贪吃蛇建立在block组成的二维列表里,block包含两个属性``,自己的身份和指向身份包括:草地,蛇身,蛇头,蛇尾巴,苹果五种。指向则是从尾巴一格一格地指向蛇头。这样蛇的移动其实就是丢掉尾巴,头长长一格。代码展示import osimport timeimport randomfrom pynput.keyboard import Listenerdef bp (s

2021-08-03 17:50:37 4179 7

原创 刷力扣学习记忆化递归[leetcode10. 正则表达式匹配]

刷力扣学习记忆化递归[leetcode10. 正则表达式匹配]原题链接https://leetcode-cn.com/problems/regular-expression-matching/当你发现你的递归里有很多重复的函数调用的时候,就要想想使用记忆化递归了,使用起来就是在本来要return的时候先把他储存起来,然后再返回题解memo = [[None]*N for _ in range(M+1)] #用于储存M,N = len(s),len(p)def dfs (i,j):

2021-08-02 09:54:33 78

原创 刷力扣学习动态规划[leetcode 63. 不同路径 II][leetcode 45. 跳跃游戏 II]

刷力扣学习动态规划[leetcode 63. 不同路径 II][leetcode 45. 跳跃游戏 II]原题链接https://leetcode-cn.com/problems/jump-game-ii/https://leetcode-cn.com/problems/unique-paths-ii/动态规划(Dynamic Programing)和递归很像,都是把问题拆分成两个部分,当前问题和其余问题,只不过递归是先处理当前问题,然后处理剩下的问题,而动态规划是其余问题先处理,并且存储下来了

2021-07-30 17:36:44 158 1

原创 刷力扣学习递归

刷力扣学习非尾递归原题链接https://leetcode-cn.com/problems/add-two-numbers/submissions/非尾递归想起来比尾递归难一点,主要还是想好怎么开始,怎么结束,中间干什么就好了。题解class Solution: def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode: def foo (n,m,extra):

2021-07-29 17:04:50 163

原创 刷力扣学习二叉树-[LeetCode] 863二叉树距离为K的所有结点

刷力扣学习二叉树原题位置https://leetcode-cn.com/problems/all-nodes-distance-k-in-binary-tree/二叉树二叉树由于每一个叉都有且只有两个枝叶,因此每一个点(note)的位置实际上是确定的,就像图中这样如果用列表来表示即为root = [3,5,1,6,2,0,8,null,null,7,4]那么如何确定2这个元素的位置呢?2在第三行第二个,则2 == root[2**(三行-1) + 二列-2]相反的,使用math库中的lo

2021-07-28 14:44:09 134

原创 加权图与狄克斯特拉算法的python实现

加权图与狄克斯特拉算法的python实现加权图通过python可以用两个graph = {'s': {'a': 1, 'd': 2}, 'a': {'b': 1, 'c': 2}, 'b': {'t': 10}, 'c': {'t': 1}, 'd': {'c': 10}, 't': {}}costs = {'a':999,'b':999,'c':999,'d':999,'s':999,'t':999,}parents = {}for i in graph['s']: costs

2020-12-05 22:46:56 403 1

原创 python3 删除命令行中输出的内容

python3 删除命令行中输出的内容\r 与 \bpython的print里内置了\r \b两种转义符号, 类似于\ n. 其中\r 表示将光标移动到行首, \b将光标向前移动一位光标移动有什么用呢? 当光标移动后, 光标后面的已经输出的字符对电脑来说变为空白, 但是我们还可以看见.这样从新的光标位置开始输入时, 电脑就会覆盖后面已经输出了的内容, 相当于就是删除写点代码表示一下#注意print有个默认的end = "\n", #因此如果不手动设置进入下一行后, \b,\r就都失去作用了#

2020-12-05 09:46:02 11733

原创 广度优先bfs的python实现

广度优先bfs的python实现def ladderLength(self, beginWord, endWord, wordList): beginWord = 'hit' endWord = 'cog' wordList = ['hot','dot','dog','lot','log','cog'] tree = {} for i in wordList+[beginWord]: length = len(i) tree[i] = [] for j in wor

2020-12-04 22:01:01 442 5

原创 通过LeetCode 210课程表 II学习图

通过LeetCode 210课程表 II学习图用python实现图python的图可以通过dict很简单的实现, 例如下面这张图可以这样表示:Map = {}Map['s'] = ['a', 'd']Map['a'] = ['s', 'c', 'b']Map['b'] = ['a', 't']···这样可以很轻易的知道每个元素相连的元素代码实现class Solution: def findOrder(self, numCourses: int, prerequisites

2020-12-02 19:53:55 230

原创 快速排序的非尾递归python实现

快速排序的python实现快速排序的时间复杂度为O(n log(n)),可以用这种办法来记忆算法:将当前排列的数字中选出一个数字(例如第一个)为基准flag, 剩下的数字分为两组, 比flag大的, 比flag小的(这部分时间复杂度为O(n)). 再对剩下的部分执行同样操作(这部分时间复杂度为O(n log(n)))[因为采用了二分法]需要注意的是何时可以结束递归: 排列的长度为0, 1时都可以, 这里要仔细分析代码实现def qsort (L): if len(L):

2020-12-01 22:50:27 235 3

原创 选择排序的python实现

选择排序的python实现选择排序的时间复杂度为O(n * n),由此记住这种算法会比较简单:依次找出所需排序对象中最小或最大的元素O(n),并加入到一个新数组中O(n).代码实现L = [3,2,5,7,1,3,4]def get_smallest (L): the_min = L[0] index_min = 0 for i in range(len(L)): if L[i]<the_min: the_min = L[i]

2020-12-01 22:31:51 156 1

原创 (3)CCF201803-3python实现url映射

(3)CCF201803-1python实现url映射这题难度也不大, 不过我使用了很多c没有的方式, 像切片, in什么的, 不用可能要更改思路了顺便积累一下知识点, 只是引用外部变量是不用global函数的, 只有需要更改外界不可变类型变量的时候才需要使用代码实现[n, m] = [int(x) for x in input().split(' ')]checks = []for i in range(n): x = input().split(' ') checks.ap

2020-11-25 17:36:45 231 1

原创 (2)CCF201803-2python实现碰撞的小球

(2)CCF201803-1python实现碰撞的小球这题也没有难度…但是注意题目输出的时候小球的顺序是按照输入的顺序输出的, 所以应该()优先遍历小球而不是从数轴上遍历python 能写 [0]* (L+1)就是爽啊代码实现:[n, L, t] = [int(x) for x in input().split(' ')]#第一个表示方向1右-1左, 第二个表示位置balls = []rope = [0] * (L+1) for i in [int(x) for x in in

2020-11-24 20:51:23 667 4

原创 (1)CCF201803-1python实现跳一跳

(1)CCF201803-1python实现跳一跳冲击2020ccf, 现在准备一下搬出好久没有用过的python, python写起来真的比c清晰很多啊, python赛高!就是有点容易写分号这题没有难度,莽就行了L = [int(x) for x in input().split(' ')]fore = 0sum = 0for i in L: if(i==0): break if(i==1): sum+=1 fore =

2020-11-24 20:44:28 146

原创 DIY一个红外避障小车!(2)软件部分

DIY一个红外避障小车!(2)软件部分1.不多说,上代码#include <REG52.H>sbit ENA=P0^0;sbit IN1=P0^1;sbit IN2=P0^2;sbit ENB=P2^0;sbit IN3=P2^1;sbit IN4=P2^2;sbit A1=P1^0;sbit B2=P1^1;void delay(int z) { int x,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}void

2020-11-21 18:22:27 564 3

原创 DIY一个红外避障小车!(1)硬件部分的安装

DIY一个红外避障小车!(1)硬件部分的安装主要就是学习一下单片机的知识0. 使用材料螺丝 螺母 杜邦线CH340

2020-11-21 09:46:57 4299 4

原创 用C语言判断数独是否多解

C语言判断数独是否多解0. 数独数独(shù dú)是源自18世纪瑞士的一种数学游戏。是一种运用纸、笔进行演算的逻辑游戏。玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫(3*3)内的数字均含1-9,不重复1. 想法只有一个解的数独才是合法的, 于是我想写个程序判断一下2. 思路感觉就是把所有数独的解求出来, 要是有两个, 就是有多个解~3. 代码实现#include <stdio.h>/* 这是一个用于实验的数独int L

2020-11-16 19:25:38 1293

空空如也

空空如也

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

TA关注的人

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