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

原创 leetcode刷题随记6-盛最多水的容器(python3版)

但存在一个这样的问题,如果在前几次循环时,max_value已经达到最大值了,那么后面剩余的循环其实可以不用执行了。方法是在每次更新max_value之前,设置一个之后所有更新的max_value的最大值, 如果当前的max_value已经大于这个最大值了,则不需要再循环了。在每次循环中,更新max_value,并移动指针。这样的写法在实际中经常用于只关心循环次数而不需要循环变量值的情况,同时避免了定义一个不会使用的变量。最简单的方法,申请一个二维列表,用于保存可能组合的储水量。

2023-12-22 18:21:53 447

原创 leetcode刷题随记5-最后一个单词的长度(python3版)

先统计字符串末尾的空格数量,然后将字符串末尾的空格给去掉(切片),再从最后一个字符开始统计字符数量,直到遇到空格为止。,由若干单词组成,单词前后用一些空格字符隔开。使用python的内置函数strip()和split()。是指仅由字母组成、不包含任何空格字符的最大子字符串。

2023-12-16 21:34:03 528 1

原创 leetcode刷题随记4-搜索插入位置(python3版)

在查找的过程中,如果目标值比中间值更大,说明应该去中间值的右边查找,因此left=middle+1,right不变,并更新middle;如果目标值比中间值更小,则说明应该去中间值的左边查找,left不变,right=middle-1,并更新middle;如果if后面的条件不成立,会检查elif后面的条件,如果 elif的条件成立,则执行elif下面的代码块。来获取列表的长度的时间复杂度是 O(1),这是因为 Python 的列表实现中,会保存列表的长度信息,因此无需遍历整个列表来计算长度。

2023-12-15 11:11:26 350

原创 leetcode刷题随记3-Excel表列名称(python3版)

在这里我们选择整数乘法,因为我们不仅仅要取到26进制下columnNumber各位上的数,还要在取到了之后将其转换为大写字母,方法是用ASCII码转换为对应的字符,比如说某位上的数字是2,它对应的数字是B,而A的ASCII码为66,因此使用类型转换chr(65+1)即可。这个1是我们刚刚用取模操作得到2减去1的,如果我们选择/”运算符,那么参加取模操作的数中会有浮点数,导致计算出来的值是浮点数1.0,而整数65与浮点数1.0相加会变成浮点数66.0,不满足类型转换的要求。三、复习一些关于字符串的操作。

2023-12-14 17:13:10 342 1

原创 leetcode刷题随记2-爬楼梯

但这样会超出时间限制,因为会重复计算相同的子问题,比如说计算n=5时,会先计算子问题n=4和n=3,再计算n=3、n=2(n=4的子问题)和n=2、n=1(n=3的子问题),这样就相当于n=3和n=2被重复计算了。动态规划的“动态”体现在问题的阶段性划分和中间结果的保存,而“规划”则指的是在解决问题的阶段中进行的决策。在动态规划中,问题被分解为更小的子问题,然后通过解决子问题来解决原始问题。在爬楼梯问题中,每一步可以选择爬1个台阶或2个台阶,到达楼顶的方法数取决于到达前两个台阶和前一个台阶的方法数。

2023-12-13 15:03:52 602 1

原创 python中的类和对象

在python中,创建类的对象的方法是类的名称+类的属性值(和__init__中的参数一一对应)。这是因为,在 Python 中,对于不可变类型的变量(如整数),变量赋值实际上是将变量指向一个新的对象,而不是修改原始对象的值。如果定义一个新的变量person3,使person3=person1,将导致两个变量都指向相同的对象,而不是创建一个新的对象。在这个例子中,person1和person3指向同一个 Person 类的对象,因此,对其中一个变量的修改也会影响另一个变量。,它有属性:姓名、年龄、性别;

2023-12-12 21:45:47 388

原创 leetcode刷题随记1-合并两个有序链表(python3版)

如果两个链表均非空,创建一个新链表,并依次比较list1和list2各个节点的元素大小,将二者之中小的那一个尾插到新链表中。最后如果其中一个链表已经读完,将另一个链表的剩余节点附加到合并后的链表即可。我的想法是,首先判断一下两个链表是否为空,若list1为空,返回list2即可,反之亦然。新链表是通过拼接给定的两个链表的所有节点组成的。将两个升序链表合并为一个新的。运行效果似乎很一般....

2023-12-12 20:05:25 325

原创 用python实现栈的一种简单方法

用python实现栈的一种简单方法

2023-12-12 11:38:28 469

原创 关于Visual studio 2022无法启动程序,系统找不到指定的文件和更改代码之后输出的结果不变的问题

解决方法:我们编写的c代码是源文件,计算机在运行时需要将它链接、编译成可执行文件,但是可以看到上图中的右侧的的源文件目录下并没有文件,因此无法生成可执行文件,这样一来就会导致系统找不到指定的文件,系统找不到指定的文件。所以解决方法是右键“源文件”,添加新建项,选择c++文件(c文件也可以,但是可能是因为我只下载了c++的编译器,所以我这里没有c文件这个选项)。可以看到源文件目录下面已经有文件了,在这个文件里输入你的代码,执行即可。解决方法:点击“生成”——重新生成解决方案。

2023-11-29 20:01:12 3267 1

哈工大计算理论 图灵机、不可判定性、难解问题 课程笔记及作业题详解

哈工大计算理论 图灵机、不可判定性、难解问题 课程笔记及作业题详解

2023-11-29

HIT CSAPP大作业 程序人生-Hello's P2P

本论文以Linux操作系统环境为背景,利用GCC编译器、EDB调试器和Objdump反汇编工具等工具链,对"hello.c"源程序的编译、链接和执行过程进行深入研究。通过整合计算机系统软硬件知识,探索"hello.c"是如何逐步转化为可执行程序"hello"的。 首先,本文介绍了"hello.c"的预处理阶段,其中预处理器对源文件进行宏替换和头文件包含等操作,生成中间文件"hello.i"。接着,我们详细讲解了编译阶段,编译器将C语言源代码转化为汇编语言文件"hello.s"。然后,我们讨论了汇编阶段,汇编器将汇编指令翻译为机器语言,并生成目标文件"hello.o"。随后,本文深入探讨了链接阶段,包括目标文件之间的符号引用解析和可执行文件的生成,以及如何将目标文件整合为一个可执行文件"hello"。在程序执行阶段,我们描述了操作系统加载可执行文件"hello"到内存中的过程,为其分配虚拟地址空间,并创建进程来管理和调度执行。我们强调了进程创建的重要步骤,包括分配进程控制块、建立虚拟内存映射和执行上下文等。

2023-05-29

空空如也

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

TA关注的人

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