- 博客(67)
- 资源 (3)
- 收藏
- 关注
原创 力扣-2865美丽塔Ⅰ
这样就好说了,我们假设第i个塔是最高的,然后根据条件得出左右每个位置上可以建造的最高的塔即可。从为了完成题目的思路来讲,我们使用第一种方式,但是从优化角度来讲,我们应该使用第二种思路。,另一种是修改过程代码(因为逻辑是一样的),在过程中将高度和计算出来,保留最大值。此时我们就有了两种方案,在后续直接处理我们得到的。仔细读题,然后分析山脉数组的条件,我们发现,根据此我们可以得到所有的情况。第二种思路: --需要修改代码细节。如果以下条件满足,我们称这些塔是。满足以下条件,那么我们称数组。替换为以下代码即可。
2024-01-25 08:50:34 536 1
原创 面向对象高级三
泛型的擦除问题和注意事项泛型是工作在编译阶段的,一旦程序编译成class文件,class文件中就不存在泛型了,这就是泛型擦除。泛型不支持基本数据类型,只能支持对象类型(引用数据类型) 解决方案使用基本数据类型的包装类(Integer,Double…)
2023-12-02 15:16:44 224
原创 面向对象高级二(多态)
多态是在继承/实现情况下的一种现象,表现为:对象多态、行为多态。多态的具体代码体现p1.run();p2.run();对于方法编译类型看左边,运行类型看右边。(行为多态)对于变量编译看左边,运行看左边。多态的前提有继承/实现关系,存在父类引用子类对象;存在方法重写。
2023-11-21 16:33:11 220
原创 面向对象高级一(static 继承)
类方法有什么应用场景?可以用来设计工具类工具类是什么,有什么好处?工具中的方法都是类方法,每个类方法都是用来完成一个功能的。提高了代码的复用性;调用方便,提高了开发效率。为什么工具类要用类方法,而不是实例方法?实例方法需要创建对象来调用,会浪费内存。工具类定义时有什么要求?工具类不需要创建对象,建议将工具类的构造器私有化。一个问题通常由n种解法,其中肯定有一种解法是最优的,这个最优的解法被人总结出来了,称之为设计模式。
2023-11-18 20:41:09 344
原创 04约瑟夫环
设编号为1,2,3……n的n个人围坐成一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,以此类推,直到所有人出列为止,由此产生一个出队编号的序列。
2023-07-02 16:36:54 384
原创 03单链表及代码实现
链表是有序列表,存储方式如下图(物理结构图)链表小结链表是以结点的方式来存储的。链式存储。每个结点包含data域、next域(指向下一个结点)。要注意的是,链表的各个结点不一定是连续存储。链表分带头结点的和没有头结点的链表。需要根据实际需求来确定。链表的逻辑结构。
2023-06-16 18:44:16 170
原创 idea中进入方法后如何退出
Ctrl鼠标左键点击 / Ctrl+B 进入方法体查看源代码之后找不到原来进入的位置了。使用Ctrl+Alt+Left可以一步一步退回原来的地方。就是上下左右方向键的左方向键。
2022-10-05 22:35:01 5388
原创 python线程进程
多进程和多线程代码样例下载链接多任务多任务就是同一时间运行多个程序,比如你可能一变听着歌,一变摸着鱼、一边还看着博客。。。。。。这就是生活中的场景。单核CPU实现多任务原理:操作系统轮流让各个人物交替执行,QQ执行2us,切换到微信,再执行2us,再切换到浏览器,再执行2us……。表面上看,每个人物反复执行下去,但是CPU调度执行速度太快了,导致我们感觉运行所有任务都在同时执行一样。多核CPU实现多任务的原理:真正的是执行多任务只能在多核CPU上实现,但是由于任务数量远远多于CPU核心数量,所以,
2022-03-15 19:22:00 1293
原创 python正则表达式
正则表达式的特点和作用给定一个正则表达式和另一个字符串,我们可以达到如下目的:给定的字符串是否符合正则表达式的过滤逻辑(“匹配”)可以通过正则表达式,从字符串中获取我们想要的特定部分。特点:灵活性,逻辑性个功能性非常强。可以迅速的用极简单的方式达到字符串的复杂程度。对于刚接触的人来说,比较晦涩难懂。python中的re模块不使用正则表达式的字符串匹配# 不使用正则s = '<html><body><h1>hello world<
2022-03-13 20:29:32 707
原创 11 python 魔术方法
python 魔术方法常用魔术方法魔术方法就是一个类的特殊方法,和普通方法唯一的不同时,普通方法需要调用!而魔术方法由系统自动调用。1.__init__初始化魔术方法触发时机:初始化对象时触发(不是实例化触发,但是和实例化在一个操作中)参数:至少有一个self,接收对象返回值:无作用:初始化对象的成员2.__new__实例化魔术方法 类方法触发时机: 在实例化对象时触发参数:至少一个cls 接收当前类返回值:必须返回一个对象实例作用:实例化对象注意:实例化对象是Obj
2022-03-12 10:04:07 329
原创 13 模块、文件详解
模块python中的模块就是一个个的python文件模块:.py文件程序构成:1. 顶层文件2. 各个模块模块:module模块的特点模块的概念:可以将代码量比较大的程序,分割成多个,有组织、彼此独立但又能相互调用的代码片段,这些自我包含有组织的代码就是模块模块在物理形式上,表现为:以.py结尾的文件1. 一个文件可以被看做是一个模块,一个模块也可以被看做是一个文件2. 文件名 = 模块名+后缀3. 每个模块都有自己的命名空间(作用域)Python可以利用导入的形式,完成模块之间
2022-03-10 16:51:44 1284
原创 python装饰器
python装饰器不修改原有的函数的基础上,要给函数添加功能。比如:引入日志功能函数执行时间的统计执行函数前预备的处理执行函数后的清理工作等如果直接在原来的函数上添加可能会破坏原有的函数。(违背开放封闭原则)封闭:实现的功能代码块开放:拓展开发 如果再将这个函数重新写一版本,如果只是一层调用还好。如果是频繁的调用,并且有可能需要添加的功能是分离的,然后写多层嵌套函数。这样的话我们的代码量将会增加,并且存在很多冗余现象。装饰器目的:在不修改原码的情况下进行功能的拓展。那么我
2022-03-07 13:47:08 277 1
原创 正则表达式符号
限定符符号实际意义a*a出现0次或多次a+a出现1次或多次a?a出现0次或1次a{6}a出现6次a{2,6}a出现2-6次a{2,}a出现两次以上或运算符符号实际意义(a|b)匹配a或者b(ab)|(cd)匹配ab或者cd字符类符号实际意义[abc]匹配a或者b或者c[a-c]匹配a或者b或者c[a-zA-F0-9]匹配大小写英文字符以及数字[^0-9]
2022-03-06 11:52:56 230
原创 6 字符串、元组和字典
字符串、元组和字典一、字符串字符串就是由若干个不同的unicode字符组成的不可变序列1 .字符串创建#单引号字符串str1 = '天要下雨,娘要嫁人,由他去吧'str2 = str() #空串str3 = str([10,20,30])#双引号字符串str2 = "天要下雨,娘要嫁人,由他去吧"#三引号字符串 多行字符串str3 = '''好雨知时节当春乃发生'''str4 = """随风潜入夜润物细无声""2.获取字符因为是不可变序列,所以不能修改单个字符
2022-03-03 23:56:46 199
原创 12 异常和文件
错误、异常和文件1. 异常处理***错误***指的是代码有语法问题,无法解释运行,必须改正后才能运行如果代码没有语法问题,可以运行,但会出运行时的错误,例如除零错误,下标越界等问题,这种在运行期间检测到的错误被称为***异常*** ,出现了异常必须处理否则程序会终止执行,用户体验会很差。Phthon支持程序员自己处理检测到的异常。可以使用try-except语句进行异常的检测和处理1.1 try-except语句语法: try: 【代码块A】 #可能会出错误的代码 异常检测 exce
2022-03-03 00:00:00 158
原创 5 字符串函数
Python 的字符串内建函数Python 的字符串常用内建函数如下:序号方法描述1capitalize()将字符串的第一个字符转换为大写2center(width, fillchar)返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。3count(str, beg= 0,end=len(string))返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
2022-03-02 23:30:00 106
原创 10 多态
多态1.多态其他语言中所谓多态,指的是一个方法多种实现,在继承前提下,父类规定了子类的接口,使得可以相同的方式调用子类的方法,但会获得不同的功能。Python崇尚的是“鸭子类型”(Duck typing),这个概念的名字来源于由James Whitcomb Riley提出的鸭子测试,“鸭子测试”可以这样表述:“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。”。“鸭子类型”中不关心对象的类型,只关心对象的行为。鸭子类型是动态类型的一种风格。在这种风格中,一个对象
2022-03-02 16:22:36 112
原创 9 继承
继承面向对象三大特征:封装、继承、多态1.继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”,所谓继承就是使现有的类无需编码便可以拥有原有类的方法和属性。被继承的类可以称之为***父类、基类、超类***。继承的类可以称之为***子类、派生类***。派生和继承是一体两面,从父类向子类看就是派生,从子类向父类看就是继承。子类和父类的关系可以用“is a”类表示,即子类是父类的一种,是一个更具体、更加强大的父类。python支持单继承和多继承。继承的优点:可以简化代码,减少冗余度提高了代
2022-03-02 16:22:15 120
原创 8 类和对象
类和对象1 面向对象的思想面向过程:面向处理,更多的是从计算机角度思考,注重计算每一个步骤,程序更像是一本cpu操作手册。面向对象:以日常生活的角度思考问题的解决,更接近人的思维方式,让人可以从更高的层面考虑系统的构建以你请朋友吃饭为例:面向过程面向对象自己买菜和朋友一块到饭店自己摘菜叫服务员点菜自己洗菜和朋友一块吃自己做菜和朋友一块吃面向对象的优点:面向对象更加适合做应用的开发面向对象可以使你的代码更加优雅和紧凑面向对象开发效率
2022-03-02 16:19:58 191
原创 7 函数及使用
函数# 古诗:悯农# 改需求a = '*'for i in range(100): print('锄禾日当午') print('*********') print('汗滴禾下土') print('@@@@@@@@@') print('谁知盘中餐') print('+++++++++') print('粒粒皆辛苦') print('---------')函数的特点1. 避免代码冗余2. 提高代码的可维护性 程序员可控的代码量
2022-03-02 16:19:13 170
原创 1 Python入门
Python介绍 python是一种解释型语言、面向对象语言。特点可读性强。 可读性比听上去要重要的多。一个程宇会被反复的修改,可读性强意味着让你可以在更短时间学习和记忆。简洁~ 研究证明,程序员每天写的有效代码是有限的,完成相同功能只要一半的代码,其实就是提高的很大的生产率、 python由C开发。但是没有C语言中指针等复杂数据类型,Python的简洁让开发难度和代码幅度大幅度降低,开发任务大大简化,程序员不再需要关注复杂的语法,更多关注的是任务本身。面型对象
2022-02-28 21:11:27 281
原创 第3章 线性表(二)
第3章 线性表(二)静态链表 在早期没有指针的语言中。用数组描述单链表。 让数组元素由两个数据域组成,data和cur。data相当于之前的data,cur相当于之前的next,cur存放该元素的后继在数组中的下标。cur叫做游标。 我们把用数组描述的链表叫做静态链表。线性表的静态存储结构:#define MAXSIZE 1000typedef struct { ElemType data; int cur;//游标cursor 为0表示没有指向。}Component,
2022-02-27 21:11:07 264
原创 第3章 线性表(一)
第3章 线性表线性表的定义 线性表(List):零个或者多个数据元素的有限序列。 强调:首先它是一个序列。然后强调线性表是有限的。 (直接)前驱元素、(直接)后继元素。 线性表元素的个数n(n≥0)定义为线性表的长度,当n=0时,称为空表。线性表的抽象数据类型ADT 线性表(List)Data 线性表的数据对象的集合{a1,a2,a3,……,an},每个元素的类型均为Datatype。其中,除了第一个元素a1之外,每一个元素有且只有一个直接前驱元素,除了最后一个元素an外,每个
2022-02-27 16:22:55 448
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人