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

原创 小甲鱼Python07 函数初级

pass语句表示一个空的代码块,我们经常先写好函数,pass占一个坑,等规划好之后再来填坑。函数也是可以指定参数的,我们会把参数传进去用来替代形参。在Python里如果想要返回值,不需要指定函数的返回类型,直接用return语句即可。只要遇到return语句,函数便会立刻返回,而不必管后面的值。同时,任何一个函数其实都有返回值,没有显示说明的函数会返回一个none值。

2024-02-29 21:15:51 339 1

原创 计算机组成原理第一章

计算机组成原理结合湖科大教书匠和王道的视频整理而成。

2024-02-29 10:46:17 947

原创 小甲鱼Python06 序列字典集合

我们首先思考下字符串、元组、列表的共同点:都有很多共同的运算符。都可以通过索引来获取元素,第一个元素索引都是0,都可以通过切片的方法获取某个范围内元素的集合。以上三种统称为序列。序列分为可变序列和不可变序列。+ 表示两个序列进行拼接,*表示重复。Python中的每一个对象都有三个部分:类型、值、地址。id 函数返回一个对象的具体内存地址。is 和is not称为同一性运算符。is运算符用来判断两个对象是否指向唯一地址的引用,尽管值相同,地址可能不同,is运算符仍然返回FALSE。

2024-02-27 22:07:02 844

原创 小甲鱼Python05 字符串

字符串说到底是一个序列,一个像元组那样不可变的序列。对于一个序列,我们可以利用切片的方式使其反转。

2024-02-22 21:27:52 706

原创 左程云算法通关024 随机选择算法

我们利用改写快排方法:我们假设一个数组,要求第52大的数字,那么荷兰国旗问题划分之后我们看中间等于部分,下标有没有命中52,如果有,就说明我们随机选择的这个数字就是第52的数。算法导论第九章,还有一个BFPTR算法,不用随机选择一个数的方式,时间复杂度也能到O(n),额外空间复杂度O(logn),这个算法很冷门,知道有即可。要求:时间复杂度O(n)最坏情况:要求第0大的数字,但是每次我都选择了第100大,第99大...这样就是O(n^2)。利用改写快排的方法,时间复杂度O(n),额外空间复杂度O(1)。

2024-02-21 07:00:00 311

原创 左程云算法通关023 随机快速排序

前置知识:007 时间复杂度和空间复杂度——分析随机行为时间复杂度的部分。

2024-02-20 20:32:48 428

原创 小甲鱼Python04 列表元组

兼收并蓄是列表的一个特色,列表可以容纳不同类型的数据。

2024-02-20 19:33:56 753 1

原创 左程云算法通关020 递归和master公式

前置知识:无。

2024-02-19 18:41:38 513 1

原创 黑马程序员MySQL基础

1.数据库是存储数据的仓库(DataBase,简称DB),数据在其中有组织的进行存储。2.数据库管理系统,是操纵和管理数据库的软件(DataBase Management System,简称DBMS)我们学习的MySQL就是数据库管理系统。3.SQL是一门编程语言,用来操作关系型数据库,定义操作关系型数据库的统一标准(Structured Query Language)4.主流的关系型数据库管理系统有Oracle、MySQL。

2024-02-19 13:48:49 825 1

原创 左程云算法通关041 最大公约数、同余原理

最大公约数。

2024-02-08 21:35:41 626

原创 小甲鱼Python3 分支循环

默认情况下,end参数的值是"\n",(换言之,print函数默认自动换行了)即换行符,表示每个print函数输出后都会换行。解释下怎么判断2是素数的:对于2而言,外层n是2,内层x是从2到小于2,这里面是没有元素的,因此第二层循环代码块是不执行的,那么就执行else语句,因此输出2是一个素数。其中,start表示序列的起始值(默认为0),stop表示序列的结束值(不包括该值),step表示序列的步长(默认为1)。2.判断一个条件,成立则执行其包含的某个代码块,不成立就执行另外的某条语句或者某个代码块。

2024-02-06 22:22:27 810

原创 小甲鱼Python 2

Python有三种不同的数字类型,整数,浮点数,复数。

2024-02-04 20:28:35 359 1

原创 小甲鱼Python学习1

课程使用的Python版本为3.7.2软件为IDLE(交互模式,即给一个指令立刻给出一个反馈;编辑器模式)我们使用IDLE输入import this 代码体验一下交互模式,会出现一首诗:如果第一个程序运行错误,请检查“是否全部为英文标点?”“缩进是否正确?我们可以输入 dir(__builtins__),这样可以看到Python所有的内置函数。

2024-02-03 22:45:09 858 1

原创 王道数据结构第八章 排序

稳定性:序列中出现两个相同关键字时,排序前后二者的相对顺序并没有改变。排序算法的分类:插入排序、交换排序、选择排序、归并排序、基数排序。插入排序分为直接插入排序,折半插入排序,希尔排序。选择排序:简单选择排序、堆排序。交换排序:冒泡排序、快速排序。归并排序:二路归并排序、外部排序。基数排序:最特殊的一种,适用于链表。注意:下面所说的排序序列,均是非递减排序(非递减不一定等于递增,因为可能出现两个相同的)

2023-12-26 00:00:00 1043 1

原创 左程云算法通关004 冒泡选择插入排序

冒泡排序:0到i位置上,相邻位置较大的数向后走,最终最大值达到i位置,之后重复0到i-1.选择排序:从i到n-1位置上每次找到最小值并放在i位置,之后从i+1到n-1继续。插入排序:0到i位置已经有序,新来的数找到自己的位置插入,之后继续。建议:会的同学直接跳过。

2023-12-22 00:00:00 317

原创 王道数据结构第七章 查找

顺序查找意思就是从头到尾(反之亦然)挨个查找,适合于顺序表、链表,表中元素有序无序都无所谓。顺序查找的实现:老师讲的是不带哨兵版,书上是带哨兵版。带哨兵版本: 有哨兵存在只是不用判定数组是否越界,但对实际运行效率而言并没有多快。 查找效率分析我们看ASL,并且分查找成功和失败两种情况去讨论。查找成功:ASL=(1+2+3+...+n)/n=(n+1)/2;查找失败:ASL=n+1;无论成功还是失败,数量级都是O(n)。接下来我们看是否可以优化:如果一个顺序表是有序的,表中数据元素要么递增要么递减

2023-12-13 22:59:09 839 1

原创 王道数据结构第六章: 图论及其应用

图这一章比较难,算法也很多,考试一般只会考察大家对算法的理解,算法的具体实现反而不是重点。学习图这一章时,注意要和树对比着学习。图和树很多地方是相似的,我们还会学到最小生成树等概念。

2023-10-26 22:52:49 143

原创 王道数据结构第四章 串

串,即字符串string,是由0个或多个字符组成的有限序列。一般记为S='asdf......'其中S是串名,单括号括起来的是串的值,字符个数n称为串的长度,n=0时称为空串。子串:串中任意个连续的字符组成的子序列。主串:包含子串的串。字符在主串当中的位置:字符在串中的序号。编号从1开始,和线性表的位序是一样的。子串在主串中的位置:子串的第一个字符在主串当中的序号。串其实就是一种线性表,数据元素必须是字符型。串的基本操作,如增删改查等通常以子串为操作对象。

2023-09-26 19:42:45 84

原创 王道数据结构第三章:栈与队列

本文主要实现考研王道数据结构第三章 栈与队列的内容

2023-09-19 13:52:21 143

原创 王道数据结构第二章 线性表

线性表是具有相同数据类型的n(n>=0)个元素的有限序列,其中n为表长,当n=0时,线性表是一个空表。若用L命名线性表,则其一般表示为ai是线性表中第“i"个元素在线性表中的次序。a1是表头元素,an是表尾元素。位序从1开始,数组下标从0开始。除第一个元素之外,每个元素有且仅有一个直接前驱;除最后一个元素外,每个元素有且仅有一个直接后继。由于数据类型相同,所以数据元素所占空间一样大,我们可以方便找到每一个数据元素位置。顺序表:用顺序存储的方式实现线性表把。

2023-09-17 15:38:26 86 1

原创 代码随想录第24天:回溯理论(01)

所有的回溯法都可以理解为一个树形结构,回溯就是一个递归的过程,递归一定是有终止条件的。回溯法说到底是在一个集合中寻找子集,集合的大小构成树的宽度,递归的深度构成树的深度,递归有终止条件,所以一定是一棵N叉树。我们可以发现,当起始位置之后的元素个数不满足我们需要的元素个数,那我们就可以删除,修改起始位置来控制循环次数。在本题中,for循环里i是起始位置,我们就可以令i=n-(k-path.size())+1;回溯是一种搜索的方式,是递归的副产品,有递归必然会产生回溯。对比一下回溯法三部曲的格式,是不是很像?

2023-07-24 23:11:01 67

原创 王道数据结构第五章:树与二叉树

二叉树是指n(n>=0)个结点的有限集合。1)或者为空二叉树,即n=0;2)或者由一个根结点和两个互不相交的被称为根的左子树和右子树组成。左子树和右子树又分别 是一棵二叉树。特点:二叉树每个结点最多只有两棵子树,左右子树顺序不能颠倒(二叉树是有序树二叉树的五个状态:空二叉树 只有左子树 只有右子树 只有根节点 左右子树都有。

2023-07-22 22:58:50 229 1

原创 代码随想录第四天 链表(02)

fast指针一次走两步,slow指针一次走一步,fast指针先进入环,其后fast和slow相互追赶,二者相对速度为1,在环中肯定能相遇。fast指针路程:x+y+n(y+z);所以我们在相遇点再定义一个指针,头节点定义一个指针,二者同时移动,每次一个单位,相遇 点就是环的入口。这里面的数学逻辑就深奥了,图片我不放出来,可以看上面连接的代码随想录,卡哥的动画还是很直观的。给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

2023-07-20 20:02:34 73

原创 代码随想录第三天 链表(01)

4.addAtIndex(index,val):在链表中的第 index 个节点之前添加值为 val 的节点。如果 index 等于链表的长度,则该节点将附加到链表的末尾。对链表的操作核心是对指针的操作,我们没必要重写一个链表,最好就在原链表基础上操作。是头节点的删除,我们要单独操作头节点,为了统一代码,我们采用虚拟头节点的方式。今天正式进入链表这一章,链表我自学一直卡壳在创建链表上,自己写代码一定要把链表创建过程也写出来。我们对链表中的元素操作,一定是对它的前一个元素操作,这样才知道next指针。

2023-07-18 09:03:33 68 1

原创 代码随想录第二天 数组(02)

我们举个例子,假设target=11,而数组是1,1,1,1,11;做题的时候自己能分析出来时间复杂度就可以了,至于leetcode上执行用时,大概看一下就行,只要达到最优的时间复杂度就可以了,一样的代码多提交几次可能就击败百分之百了.....(卡哥说的这句话很好玩)思路2:双指针移动法,和昨天的习题类似,由于数组自身是有序的,所以最大值一定在两端取到,中间一定是最小值。既然一个for循环解决,我们就要思考,指针是指向初始位置还是终止位置,如果是初始位置,那就和暴力枚举没有区别了,所以我们是终止位置。

2023-06-29 23:28:17 67 1

原创 代码随想录第一天 数组(01)

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度。在重新设置边界时,if(a[middle]>target)重新更改右边界,right=middle-1;此处要+1,左端点是闭区间。以左闭右闭为例,若有等号,left=right,区间中只有一个元素,合法,所以比较时应该有等号。

2023-06-28 10:27:14 521 2

空空如也

空空如也

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

TA关注的人

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