自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 算法训练day15| 226.翻转二叉树 ,102. 二叉树的层序遍历,101. 对称二叉树

注意上面最后一种情况,我没有使用else,而是else if, 因为我们把以上情况都排除之后,剩下的就是 左右节点都不为空,且数值相同的情况。因为我们要比较的是根节点的两个子树是否是相互翻转的,进而判断这个树是不是对称树,所以要比较的是两个树,参数自然也是左子树节点和右子树节点。如上代码中,我们可以看出使用的遍历方式,左子树左右中,右子树右左中,所以我把这个遍历顺序也称之为“后序遍历”(尽管不是严格的后序遍历)。对于二叉树是否对称,要比较的是根节点的左子树与右子树是不是相互翻转的,理解这一点就知道了。

2024-03-19 09:59:49 843 1

原创 测试基础(笔记未完善)

测试主流技术:1.功能测试(主要验证程序的功能是否满足);3.接口测试(使用代码或工具对服务端提供的接口进行测试);2.自动化测试(使用代码或工具替代手工测试,提高效率);4.性能测试(模拟多人使用软件,查找服务器缺陷);软件测试:使用技术手段检验软件是否满足使用需求;软件定义:控制计算机硬件工作的工具;软件测试的目的:减少bug;

2024-03-18 23:13:15 343

原创 算法练习day14|二叉树的理论基础、递归遍历、迭代遍历和统一遍历

此时我们用迭代法写出了二叉树的前后中序遍历,大家可以看出前序和中序是完全两种代码风格,并不像递归写法那样代码稍做调整,就可以实现前后中序。这是因为前序遍历中访问节点(遍历节点)和处理节点(将元素放进result数组中)可以同步处理,但是中序就无法做到同步!上面这句话,可能一些同学不太理解,建议自己亲手用迭代法,先写出来前序,再试试能不能写出中序,就能理解了。那么问题又来了,难道 二叉树前后中序遍历的迭代法实现,就不能风格统一么(即前序遍历 改变代码顺序就可以实现中序 和 后序)?

2024-03-18 23:12:11 799

原创 算法刷题day13 | 239. 滑动窗口最大值、347.前 K 个高频元素

寻找前k个最大元素流程如图所示:(图中的频率只有三个,所以正好构成一个大小为3的小顶堆,如果频率更多一些,则用这个小顶堆进行扫描)

2024-03-14 22:41:26 877 1

原创 算法Day11 | 20. 有效的括号(栈应用);1047. 删除字符串中的所有相邻重复项(栈应用), 150. 逆波兰表达式求值

输入: ["10", "6", "9", "3", "+", "-11", " * ", "/", " * ", "17", "+", "5", "+"]但还有一些技巧,在匹配左括号的时候,右括号先入栈,就只需要比较当前元素和栈顶相不相等就可以了,比左括号先入栈代码实现要简单的多了!第三种情况:遍历字符串匹配的过程中,栈已经为空了,没有匹配的字符了,说明右括号没有找到对应的左括号return false。给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。

2024-03-14 21:58:26 804 1

原创 代码随想录算法训练营day08-字符串01

给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。一些同学会使用库函数,分隔单词,然后定义一个新的string字符串,最后再把单词倒序相加,那么这道题题目就是一道水题了,失去了它的意义。想一下,我们将整个字符串都反转过来,那么单词的顺序指定是倒序了,只不过单词本身也倒序了,那么再把单词反转一下,单词不就正过来了。总体而言,这个程序的作用是读取用户输入的字符串,将其中的数字字符替换为字符串"number",然后打印出来。

2024-03-12 10:36:46 1661 1

原创 测试基础知识

​软件定义:控制计算机硬件工作的工具;软件测试:使用技术手段检验软件是否满足使用需求;软件测试的目的:减少bug;

2024-03-11 09:43:11 295 1

原创 代码随想录算法训练营Day07|15.三数之和|454.四数相加II |383.赎金信|18.四数之和

满足要求的四元组集合为: [ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, 0, 2] ]拿这个nums数组来举例,首先将数组排序,然后有一层for循环,i从下标0的地方开始,同时定一个下标left 定义在i+1的位置上,定义下标right 在数组结尾的位置上。给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。,那么来讲解一下具体实现的思路。

2024-02-28 18:19:04 856

原创 代码随想录day06(哈希表)| 242.有效的字母异位词、349.两个数组的交集、202.快乐数、1.两数之和

如果 可以变为 1,那么这个数就是快乐数。在遍历数组的时候,只需要向map去查询是否有和目前遍历元素匹配的数值,如果有,就找到的匹配对,如果没有,就把目前遍历的元素放进map中,因为map存放的就是我们访问过的元素。需要定义一个多大的数组呢,定一个数组叫做record,大小为26 就可以了,初始化为0,因为字符a到字符z的ASCII也是26个连续的数值。那么判断元素是否出现,这个元素就要作为key,所以数组中的元素作为key,有key对应的就是value,value用来存下标。

2024-02-27 17:04:12 1686

原创 代码随想录算法训练营Day4 | | 24. 两两交换链表中的节点 ,19.删除链表的倒数第N个节点 , 面试题 02.07. 链表相交

可以使用快慢指针法,分别定义 fast 和 slow 指针,从头结点出发,fast指针每次移动两个节点,slow指针每次移动一个节点,如果 fast 和 slow指针在途中相遇 ,说明这个链表有环。其实这种情况和n为1的时候 效果是一样的,一样可以通过这个方法找到 环形的入口节点,只不过,index1 指针在环里 多转了(n-1)圈,然后再遇到index2,相遇点依然是环形的入口节点。为什么fast 走两个节点,slow走一个节点,有环的话,一定会在环内相遇呢,而不是永远的错开呢。

2024-02-26 15:25:18 1787 1

原创 代码随想录算法训练营day03 | 203.移除链表元素、707.设计链表、206.反转链表

接下来说一说链表的定义。链表节点的定义,很多同学在面试的时候都写不好。这是因为平时在刷leetcode的时候,链表的节点都默认定义好了,直接用就行了,所以同学们都没有注意到链表的节点是如何定义的。而在面试的时候,一旦要自己手写链表,就写的错漏百出。// 单链表int val;// 节点上存储的元素// 指向下一个节点的指针ListNode(int x) : val(x), next(NULL) {} // 节点的构造函数。

2024-02-25 21:32:05 883 1

原创 代码随想录算法训练营第二天 | 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵

不要以为for里放一个while就以为是O(n^2)啊, 主要是看每一个元素被操作的次数,每个元素在滑动窗后进来操作一次,出去操作一次,每个元素都是被操作两次,所以时间复杂度是 2 × n 也就是O(n)。这里一圈下来,我们要画每四条边,这四条边怎么画,每画一条边都要坚持一致的左闭右开,或者左开右闭的原则,这样这一圈才能按照统一的规则画下来。在暴力解法中,是一个for循环滑动窗口的起始位置,一个for循环为滑动窗口的终止位置,用两个for循环 完成了一个不断搜索区间的过程。

2024-02-23 01:48:11 882

原创 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素

例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。二分查找这是查找算法中较为常见的一种了,在写数组的二分查找时需要借助左右两个指针分别指向数组的首尾,通过判断中间值来决定移动左右指针中的哪一个指针。输入:nums = [3,2,2,3], val = 3。

2024-02-22 17:48:57 312 1

原创 第三章 程序的机器级表示

哟啊注意这里的16是10进制数,后面的0x110是16进制数,所以下面的式子没问题。pc给出将要执行的下一条指令在内存中的地址。(movq 是前面的复制给后面的);被调用者保存(上);例子:被调用者保存模式。mov指令的特殊情况。

2023-06-22 16:20:41 50 1

原创 计算机系统2 第二章信息的表达和处理

大多数计算机使用8位的块,或者字节(byte),作为最小的可寻址的内存单位,而不是访问内存中单独的位。内存的每个字节都由一个唯一的数字来标识,称为它的地址(address),所有可能地址的集合就称为虚拟地址空间( virtual address space)。指针是由数据类型和指针值构成的,它的值表示某个对象的位置,而它的类型表示那个位置上所存储对象的类型(比如整数或者浮点数)。,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。

2023-06-16 17:47:35 71 1

原创 计算机系统2 第一章 计算机系统漫游

在程序中可能调用了某个库文件中的函数等等。所有这些问题,都需要经链接程序的处理方能得以解决。

2023-06-15 20:23:43 48 1

空空如也

空空如也

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

TA关注的人

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