<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Evans857的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Evans857</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Evans857]]></copyright><item><title><![CDATA[刷题笔记 739. 每日温度 （单调栈），215. 数组中的第K个最大元素（堆），347.前 K 个高频元素]]></title><link>https://blog.youkuaiyun.com/Evans857/article/details/140593128</link><guid>https://blog.youkuaiyun.com/Evans857/article/details/140593128</guid><author>Evans857</author><pubDate>Sun, 21 Jul 2024 22:06:19 +0800</pubDate><description><![CDATA[739. 每日温度 （单调栈）. - 备战技术面试？力扣提供海量技术面试资源，帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。第一次刷有思路，但是写不出来卡在细节处理，忘记把最后的stack.appned(i)加上，因为要把新遍历的比原先大的数放在栈顶。这题的思路其实不难，写题应该是要先看出要用什么技巧，然后再找到对应的数据结构。而不是知道要用栈，再去硬套。我们来分析一下，要找出数组位置下一个比这个位置更大的值与其之间的距离。]]></description><category></category></item><item><title><![CDATA[算法训练day15| 226.翻转二叉树 ，102. 二叉树的层序遍历，101. 对称二叉树]]></title><link>https://blog.youkuaiyun.com/Evans857/article/details/136825224</link><guid>https://blog.youkuaiyun.com/Evans857/article/details/136825224</guid><author>Evans857</author><pubDate>Tue, 19 Mar 2024 09:59:49 +0800</pubDate><description><![CDATA[注意上面最后一种情况，我没有使用else，而是else if， 因为我们把以上情况都排除之后，剩下的就是 左右节点都不为空，且数值相同的情况。因为我们要比较的是根节点的两个子树是否是相互翻转的，进而判断这个树是不是对称树，所以要比较的是两个树，参数自然也是左子树节点和右子树节点。如上代码中，我们可以看出使用的遍历方式，左子树左右中，右子树右左中，所以我把这个遍历顺序也称之为“后序遍历”（尽管不是严格的后序遍历）。对于二叉树是否对称，要比较的是根节点的左子树与右子树是不是相互翻转的，理解这一点就知道了。]]></description><category></category></item><item><title><![CDATA[测试基础(笔记未完善)]]></title><link>https://blog.youkuaiyun.com/Evans857/article/details/136602686</link><guid>https://blog.youkuaiyun.com/Evans857/article/details/136602686</guid><author>Evans857</author><pubDate>Mon, 18 Mar 2024 23:13:15 +0800</pubDate><description><![CDATA[测试主流技术：1.功能测试（主要验证程序的功能是否满足）；3.接口测试（使用代码或工具对服务端提供的接口进行测试）；2.自动化测试（使用代码或工具替代手工测试，提高效率）；4.性能测试（模拟多人使用软件，查找服务器缺陷）；软件测试：使用技术手段检验软件是否满足使用需求；软件定义：控制计算机硬件工作的工具；软件测试的目的：减少bug；]]></description><category></category></item><item><title><![CDATA[算法练习day14|二叉树的理论基础、递归遍历、迭代遍历和统一遍历]]></title><link>https://blog.youkuaiyun.com/Evans857/article/details/136734763</link><guid>https://blog.youkuaiyun.com/Evans857/article/details/136734763</guid><author>Evans857</author><pubDate>Mon, 18 Mar 2024 23:12:11 +0800</pubDate><description><![CDATA[此时我们用迭代法写出了二叉树的前后中序遍历，大家可以看出前序和中序是完全两种代码风格，并不像递归写法那样代码稍做调整，就可以实现前后中序。这是因为前序遍历中访问节点（遍历节点）和处理节点（将元素放进result数组中）可以同步处理，但是中序就无法做到同步！上面这句话，可能一些同学不太理解，建议自己亲手用迭代法，先写出来前序，再试试能不能写出中序，就能理解了。那么问题又来了，难道 二叉树前后中序遍历的迭代法实现，就不能风格统一么（即前序遍历 改变代码顺序就可以实现中序 和 后序）？]]></description><category></category></item><item><title><![CDATA[算法刷题day13 | 239. 滑动窗口最大值、347.前 K 个高频元素]]></title><link>https://blog.youkuaiyun.com/Evans857/article/details/136723376</link><guid>https://blog.youkuaiyun.com/Evans857/article/details/136723376</guid><author>Evans857</author><pubDate>Thu, 14 Mar 2024 22:41:26 +0800</pubDate><description><![CDATA[寻找前k个最大元素流程如图所示：（图中的频率只有三个，所以正好构成一个大小为3的小顶堆，如果频率更多一些，则用这个小顶堆进行扫描）]]></description><category></category></item><item><title><![CDATA[算法Day11 | 20. 有效的括号（栈应用）；1047. 删除字符串中的所有相邻重复项（栈应用）， 150. 逆波兰表达式求值]]></title><link>https://blog.youkuaiyun.com/Evans857/article/details/136720646</link><guid>https://blog.youkuaiyun.com/Evans857/article/details/136720646</guid><author>Evans857</author><pubDate>Thu, 14 Mar 2024 21:58:26 +0800</pubDate><description><![CDATA[输入: ["10", "6", "9", "3", "+", "-11", " * ", "/", " * ", "17", "+", "5", "+"]但还有一些技巧，在匹配左括号的时候，右括号先入栈，就只需要比较当前元素和栈顶相不相等就可以了，比左括号先入栈代码实现要简单的多了！第三种情况：遍历字符串匹配的过程中，栈已经为空了，没有匹配的字符了，说明右括号没有找到对应的左括号return false。给定一个只包括 '('，')'，'{'，'}'，'['，']' 的字符串，判断字符串是否有效。]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营day08-字符串01]]></title><link>https://blog.youkuaiyun.com/Evans857/article/details/136641172</link><guid>https://blog.youkuaiyun.com/Evans857/article/details/136641172</guid><author>Evans857</author><pubDate>Tue, 12 Mar 2024 10:36:46 +0800</pubDate><description><![CDATA[给定一个字符串 s 和一个正整数 k，请编写一个函数，将字符串中的后面 k 个字符移到字符串的前面，实现字符串的右旋转操作。一些同学会使用库函数，分隔单词，然后定义一个新的string字符串，最后再把单词倒序相加，那么这道题题目就是一道水题了，失去了它的意义。想一下，我们将整个字符串都反转过来，那么单词的顺序指定是倒序了，只不过单词本身也倒序了，那么再把单词反转一下，单词不就正过来了。总体而言，这个程序的作用是读取用户输入的字符串，将其中的数字字符替换为字符串"number"，然后打印出来。]]></description><category></category></item><item><title><![CDATA[测试基础知识]]></title><link>https://blog.youkuaiyun.com/Evans857/article/details/136604658</link><guid>https://blog.youkuaiyun.com/Evans857/article/details/136604658</guid><author>Evans857</author><pubDate>Mon, 11 Mar 2024 09:43:11 +0800</pubDate><description><![CDATA[​软件定义：控制计算机硬件工作的工具；软件测试：使用技术手段检验软件是否满足使用需求；软件测试的目的：减少bug；]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营Day07|15.三数之和|454.四数相加II |383.赎金信|18.四数之和]]></title><link>https://blog.youkuaiyun.com/Evans857/article/details/136349557</link><guid>https://blog.youkuaiyun.com/Evans857/article/details/136349557</guid><author>Evans857</author><pubDate>Wed, 28 Feb 2024 18:19:04 +0800</pubDate><description><![CDATA[满足要求的四元组集合为： [ [-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。，那么来讲解一下具体实现的思路。]]></description><category></category></item><item><title><![CDATA[代码随想录day06（哈希表）| 242.有效的字母异位词、349.两个数组的交集、202.快乐数、1.两数之和]]></title><link>https://blog.youkuaiyun.com/Evans857/article/details/136322832</link><guid>https://blog.youkuaiyun.com/Evans857/article/details/136322832</guid><author>Evans857</author><pubDate>Tue, 27 Feb 2024 17:04:12 +0800</pubDate><description><![CDATA[如果 可以变为  1，那么这个数就是快乐数。在遍历数组的时候，只需要向map去查询是否有和目前遍历元素匹配的数值，如果有，就找到的匹配对，如果没有，就把目前遍历的元素放进map中，因为map存放的就是我们访问过的元素。需要定义一个多大的数组呢，定一个数组叫做record，大小为26 就可以了，初始化为0，因为字符a到字符z的ASCII也是26个连续的数值。那么判断元素是否出现，这个元素就要作为key，所以数组中的元素作为key，有key对应的就是value，value用来存下标。]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营Day4 | | 24. 两两交换链表中的节点 ,19.删除链表的倒数第N个节点 , 面试题 02.07. 链表相交]]></title><link>https://blog.youkuaiyun.com/Evans857/article/details/136288885</link><guid>https://blog.youkuaiyun.com/Evans857/article/details/136288885</guid><author>Evans857</author><pubDate>Mon, 26 Feb 2024 15:25:18 +0800</pubDate><description><![CDATA[可以使用快慢指针法，分别定义 fast 和 slow 指针，从头结点出发，fast指针每次移动两个节点，slow指针每次移动一个节点，如果 fast 和 slow指针在途中相遇 ，说明这个链表有环。其实这种情况和n为1的时候 效果是一样的，一样可以通过这个方法找到 环形的入口节点，只不过，index1 指针在环里 多转了(n-1)圈，然后再遇到index2，相遇点依然是环形的入口节点。为什么fast 走两个节点，slow走一个节点，有环的话，一定会在环内相遇呢，而不是永远的错开呢。]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营day03 ｜ 203.移除链表元素、707.设计链表、206.反转链表]]></title><link>https://blog.youkuaiyun.com/Evans857/article/details/136284660</link><guid>https://blog.youkuaiyun.com/Evans857/article/details/136284660</guid><author>Evans857</author><pubDate>Sun, 25 Feb 2024 21:32:05 +0800</pubDate><description><![CDATA[接下来说一说链表的定义。链表节点的定义，很多同学在面试的时候都写不好。这是因为平时在刷leetcode的时候，链表的节点都默认定义好了，直接用就行了，所以同学们都没有注意到链表的节点是如何定义的。而在面试的时候，一旦要自己手写链表，就写的错漏百出。// 单链表int val;// 节点上存储的元素// 指向下一个节点的指针ListNode(int x) : val(x), next(NULL) {} // 节点的构造函数。]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营第二天 | 977.有序数组的平方 ，209.长度最小的子数组 ，59.螺旋矩阵]]></title><link>https://blog.youkuaiyun.com/Evans857/article/details/136244212</link><guid>https://blog.youkuaiyun.com/Evans857/article/details/136244212</guid><author>Evans857</author><pubDate>Fri, 23 Feb 2024 01:48:11 +0800</pubDate><description><![CDATA[不要以为for里放一个while就以为是O(n^2)啊， 主要是看每一个元素被操作的次数，每个元素在滑动窗后进来操作一次，出去操作一次，每个元素都是被操作两次，所以时间复杂度是 2 × n 也就是O(n)。这里一圈下来，我们要画每四条边，这四条边怎么画，每画一条边都要坚持一致的左闭右开，或者左开右闭的原则，这样这一圈才能按照统一的规则画下来。在暴力解法中，是一个for循环滑动窗口的起始位置，一个for循环为滑动窗口的终止位置，用两个for循环 完成了一个不断搜索区间的过程。]]></description><category></category></item><item><title><![CDATA[代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素]]></title><link>https://blog.youkuaiyun.com/Evans857/article/details/136238437</link><guid>https://blog.youkuaiyun.com/Evans857/article/details/136238437</guid><author>Evans857</author><pubDate>Thu, 22 Feb 2024 17:48:57 +0800</pubDate><description><![CDATA[例如，函数返回的新长度为 2 ，而 nums = [2,2,3,3] 或 nums = [2,2,0,0]，也会被视作正确答案。给定一个 n 个元素有序的（升序）整型数组 nums 和一个目标值 target ，写一个函数搜索 nums 中的 target，如果目标值存在返回下标，否则返回 -1。二分查找这是查找算法中较为常见的一种了，在写数组的二分查找时需要借助左右两个指针分别指向数组的首尾，通过判断中间值来决定移动左右指针中的哪一个指针。输入：nums = [3,2,2,3], val = 3。]]></description><category></category></item><item><title><![CDATA[第三章 程序的机器级表示]]></title><link>https://blog.youkuaiyun.com/Evans857/article/details/131331479</link><guid>https://blog.youkuaiyun.com/Evans857/article/details/131331479</guid><author>Evans857</author><pubDate>Thu, 22 Jun 2023 16:20:41 +0800</pubDate><description><![CDATA[哟啊注意这里的16是10进制数，后面的0x110是16进制数，所以下面的式子没问题。pc给出将要执行的下一条指令在内存中的地址。（movq 是前面的复制给后面的）；被调用者保存（上）；例子：被调用者保存模式。mov指令的特殊情况。]]></description><category></category></item><item><title><![CDATA[计算机系统2 第二章信息的表达和处理]]></title><link>https://blog.youkuaiyun.com/Evans857/article/details/131235133</link><guid>https://blog.youkuaiyun.com/Evans857/article/details/131235133</guid><author>Evans857</author><pubDate>Fri, 16 Jun 2023 17:47:35 +0800</pubDate><description><![CDATA[大多数计算机使用8位的块，或者字节（byte），作为最小的可寻址的内存单位，而不是访问内存中单独的位。内存的每个字节都由一个唯一的数字来标识，称为它的地址（address），所有可能地址的集合就称为虚拟地址空间（ virtual address space）。指针是由数据类型和指针值构成的，它的值表示某个对象的位置，而它的类型表示那个位置上所存储对象的类型（比如整数或者浮点数）。，这种存储模式将地址的高低和数据位权有效地结合起来，高地址部分权值高，低地址部分权值低，和我们的逻辑方法一致。]]></description><category></category></item><item><title><![CDATA[计算机系统2 第一章 计算机系统漫游]]></title><link>https://blog.youkuaiyun.com/Evans857/article/details/131224725</link><guid>https://blog.youkuaiyun.com/Evans857/article/details/131224725</guid><author>Evans857</author><pubDate>Thu, 15 Jun 2023 20:23:43 +0800</pubDate><description><![CDATA[在程序中可能调用了某个库文件中的函数等等。所有这些问题，都需要经链接程序的处理方能得以解决。]]></description><category></category></item></channel></rss>