<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[keepstandard的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/keepstandard</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; keepstandard]]></copyright><item><title><![CDATA[sql常用语句]]></title><link>https://blog.youkuaiyun.com/keepstandard/article/details/141754987</link><guid>https://blog.youkuaiyun.com/keepstandard/article/details/141754987</guid><author>keepstandard</author><pubDate>Sat, 31 Aug 2024 16:52:02 +0800</pubDate><description><![CDATA[ALTER table stu add(classname varchar(100))

2.修改列的数据类型 修改stu表的gender列类型为CHAR(2)


Alter table stu modify gender char(2)

3.修改列名 修改stu表的gender列名为sex


ALTER table stu change gender sex CHAR(2)

4.删除列 删除stu表中的classname列


ALTER table stu DROP classname

5.修]]></description><category></category></item><item><title><![CDATA[mysql事务_2]]></title><link>https://blog.youkuaiyun.com/keepstandard/article/details/141688529</link><guid>https://blog.youkuaiyun.com/keepstandard/article/details/141688529</guid><author>keepstandard</author><pubDate>Thu, 29 Aug 2024 21:33:15 +0800</pubDate><description><![CDATA[buffer pool]]></description><category></category></item><item><title><![CDATA[mysql事务]]></title><link>https://blog.youkuaiyun.com/keepstandard/article/details/141676966</link><guid>https://blog.youkuaiyun.com/keepstandard/article/details/141676966</guid><author>keepstandard</author><pubDate>Thu, 29 Aug 2024 15:08:19 +0800</pubDate><description><![CDATA[mysql事务相关面试题]]></description><category></category></item><item><title><![CDATA[四十天Java八股文打卡训练营的蜕变之旅]]></title><link>https://blog.youkuaiyun.com/keepstandard/article/details/141284232</link><guid>https://blog.youkuaiyun.com/keepstandard/article/details/141284232</guid><author>keepstandard</author><pubDate>Sat, 17 Aug 2024 17:46:22 +0800</pubDate><description><![CDATA[过去的四十天，我参加的Java八股文语音打卡训练营不仅让我对Java语言有了更深入的理解，也极大地提升了我的编程技能和问题解决能力。每一天的学习都以语音打卡的形式开始，这种形式强化了我的学习责任感，也增加了学习的互动性。随着每一天的深入学习，我逐渐意识到，坚持这样的学习方式不仅让我在知识上得到了积累，更重要的是，在思维方式和解决问题的方法上也有了显著的提升。我现在看待问题的角度更加全面，解决问题的方法更加多样，编码的速度和质量都有了明显的提升。]]></description><category></category></item><item><title><![CDATA[蓝桥杯javaB组 矩形总面积]]></title><link>https://blog.youkuaiyun.com/keepstandard/article/details/135675899</link><guid>https://blog.youkuaiyun.com/keepstandard/article/details/135675899</guid><author>keepstandard</author><pubDate>Thu, 18 Jan 2024 15:57:34 +0800</pubDate><description><![CDATA[题目的意思是，在一个坐标系中给定两个矩形R1，R2，他们的状态可能是:R1 和 R2 没有重叠区域;然后计算两个矩形的总面积。这感觉就是一道数学问题，我们可以分别计算这两个矩形面积相加，如果他们有重叠部分则减去重叠部分的面积。两个矩形的重叠部分肯定是矩形，所以我们只需求出重叠矩形的长和高就可以了。简单画了一下重叠的状态，那么就可以求出来长和高了，length=Math.min(ax2,bx2)-Math.max(ax1,bx1)，high=min(ay2,by2)-Math.max(ay1,by1)；]]></description><category></category></item><item><title><![CDATA[蓝桥杯javaB组 数组分割]]></title><link>https://blog.youkuaiyun.com/keepstandard/article/details/135602347</link><guid>https://blog.youkuaiyun.com/keepstandard/article/details/135602347</guid><author>keepstandard</author><pubDate>Mon, 15 Jan 2024 15:46:51 +0800</pubDate><description><![CDATA[就可以了，因为如果总和为奇数，无论如何分割都会使，两个部分其中一个部分的和是奇数。这时想到了用动态规划来解决这道题目，那么肯定要定义dp数组，含义就是以nums[i]为结尾并且和为奇数和和为偶数两种，那么就需要定义一个二维的dp数组，我们假设让dp[0][i]表示以nums[i]为结尾并且和为偶数，dp[1][i]表示以nums[i]为结尾并且和为奇数，我们最后要求的是有多少种分割方法，其实我们可以把nums[i]理解为分割位置，那么只需要1+每次分割和为偶数求和就可以了，1表示的是空集的情况。]]></description><category></category></item><item><title><![CDATA[二叉树part2]]></title><link>https://blog.youkuaiyun.com/keepstandard/article/details/133918814</link><guid>https://blog.youkuaiyun.com/keepstandard/article/details/133918814</guid><author>keepstandard</author><pubDate>Thu, 19 Oct 2023 14:52:50 +0800</pubDate><description><![CDATA[其实反转二叉树就是交换节点的左右孩子，这道题用的是递归方法，第一步应该是确定参数和返回值类型，参数就是跟节点，返回值类型就是TreeNode，然后是确定种植条件，如果该节点为空则停止递归，然后就是确定单层递归的逻辑，首先我们需要选择一种方法来遍历二叉树，我用的是前序，后来看了卡哥的讲解之后画了图，发现前后都可以，但是中会导致某些节点会被交换两次。用的是迭代方式借助的是队列。如果我们将遍历的节点的值存入队列之后，我们怎么才能知道哪个节点和哪个节点是同一层呢？]]></description><category></category></item><item><title><![CDATA[栈与队列part3]]></title><link>https://blog.youkuaiyun.com/keepstandard/article/details/133901668</link><guid>https://blog.youkuaiyun.com/keepstandard/article/details/133901668</guid><author>keepstandard</author><pubDate>Wed, 18 Oct 2023 16:12:41 +0800</pubDate><description><![CDATA[那么我们就需要在poll的时候和add的时候来做条件的判断了，当我们在poll的时候我们要判断，当前要弹出的元素是否等于队列出口的值，如果相等则弹出，在add操作中，我们要循环判断，如果加入的元素比入口元素大，则弹出入口处的元素，知道要添加的元素前面都是比她大的元素即可。实现了这个单调队列之后，这道题就好写很多了，我们只需先将前k个元素存到res数组，然后依次遍历k到最后一个元素，反复调用poll，add，peek方法即可。那么这个维护元素单调递减的队列就叫做单调队列，即单调递减或单调递增的队列。]]></description><category></category></item><item><title><![CDATA[Day11:栈与队列（part2）● 20. 有效的括号● 1047. 删除字符串中的所有相邻重复项● 150. 逆波兰表达式求值]]></title><link>https://blog.youkuaiyun.com/keepstandard/article/details/133873913</link><guid>https://blog.youkuaiyun.com/keepstandard/article/details/133873913</guid><author>keepstandard</author><pubDate>Mon, 16 Oct 2023 23:56:40 +0800</pubDate><description><![CDATA[这道题主要是一共要三种不匹配的情况要搞懂，第一种是多了左扣号，就是在循环结束之后，栈不为空时的情况，一种是多了右括号，就是在循环还没结束时，栈就已经空了，最后一种情况是左右括号不匹配的情况，就是遍历的时候发现栈里的元素不匹配。其实就是遍历字符串，然后判断如果和前一位相同则pop操作，如果不相同则push操作，最后在反转一下栈里元素即可。遍历tokens，如果遍历到的元素不是算数运算符则将元素存入deq，如果遍历到运算符则要进行相应的操作，这里要注意，弹出的元素和操作元素对顺序应该是相反的。]]></description><category></category></item><item><title><![CDATA[Day10（栈与队列part1）栈和队列的互相实现：232；225]]></title><link>https://blog.youkuaiyun.com/keepstandard/article/details/133850217</link><guid>https://blog.youkuaiyun.com/keepstandard/article/details/133850217</guid><author>keepstandard</author><pubDate>Mon, 16 Oct 2023 01:13:09 +0800</pubDate><description><![CDATA[首先要熟悉一下栈和队列的性质，和方法。栈就是先进后出的结构，常见的方法有push()是入栈操作，pop()是移除并返回元素，peek()返回栈尾元素，队列的结构是先进先出，所以我们用栈来实现队列时则需要使用两个栈，in栈是负责进栈，out则负责出栈，我们首先将元素push进in栈里，此时我们要实现队列的pop操作，但栈的pop操作返回的是尾，而队列返回的是头，这时候我们需要自己构造一个方法来实现队列元素的反转，我们只需要pop（in）取出in中的每一个头元素然后依次push进out中即可。]]></description><category></category></item><item><title><![CDATA[Day9字符串part2:KMP算法]]></title><link>https://blog.youkuaiyun.com/keepstandard/article/details/133781385</link><guid>https://blog.youkuaiyun.com/keepstandard/article/details/133781385</guid><author>keepstandard</author><pubDate>Thu, 12 Oct 2023 00:08:37 +0800</pubDate><description><![CDATA[kmp算法其实就是一种应用于字符串匹配的算法，他的主要思想是当出现字符串不匹配时，可以一部分已经匹配的文本内容，可以利用这些信息做到避免从头匹配，kmp算法的精髓其实就是next数组，也就是前缀表，前缀表的作用是记录下标i之前包括i的字符串中，有多大长度相同的前缀后缀。还有一道题是重复的子字符串， 我看了视频讲解感觉懂了，但具体代码还是写不出来，可能要慢慢积累估计就懂了加油。2.处理前缀后缀不相同的情况；使用前缀表可以告诉我们匹配失败之后跳到哪里重新匹配。这个是力扣上28的题，也就是kmp的应用。]]></description><category></category></item><item><title><![CDATA[day8字符串part1 ：344.反转字符串；541.反转字符串2；替换空格]]></title><link>https://blog.youkuaiyun.com/keepstandard/article/details/133694267</link><guid>https://blog.youkuaiyun.com/keepstandard/article/details/133694267</guid><author>keepstandard</author><pubDate>Mon, 09 Oct 2023 14:43:16 +0800</pubDate><description><![CDATA[这道题跟反转字符串的区别是每计数至 2k 个字符，就反转这 2k 个字符中的前 k 个字符，刚开始做的时候没想到在循环条件里改，而是用if来判断也写了很多很多，后来看了视频明白了i每次跳2k就可以了，在循环里要有个判断，如果剩余字符小于 2k 但大于或等于 k 个，则反转前 k 个字符，其余字符保持原样。如果剩余字符少于 k 个，则将剩余字符全部反转。如果满足大于等于k小于2k就rev前k个，直接continue是为了不走下面的，跟else类似。左旋：第一步先rev前n个，在rev剩余的，最后整体rev。]]></description><category></category></item><item><title><![CDATA[二叉树part1]]></title><link>https://blog.youkuaiyun.com/keepstandard/article/details/133691998</link><guid>https://blog.youkuaiyun.com/keepstandard/article/details/133691998</guid><author>keepstandard</author><pubDate>Sun, 08 Oct 2023 23:29:52 +0800</pubDate><description><![CDATA[国庆去成都玩来的，火车硬卧缓咯几天终于是有精神头了，直接开干。]]></description><category></category></item><item><title><![CDATA[day7（hash表）● 454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和]]></title><link>https://blog.youkuaiyun.com/keepstandard/article/details/133325906</link><guid>https://blog.youkuaiyun.com/keepstandard/article/details/133325906</guid><author>keepstandard</author><pubDate>Wed, 27 Sep 2023 00:58:24 +0800</pubDate><description><![CDATA[还是第一眼四层for，但学了hash表以后肯定不能当for哥了，首先数组不行，因为整数的范围太大，那么就考虑用map还是set，因为这题要返回等于零的数量，所以要用map，首先我们遍历A和B数组，将a+b的和出现的次数存入map，然后我们在遍历c和d数组，如果0-c-d在map中出现过，则取出value的值，最后用count来返回就可以了。]]></description><category></category></item><item><title><![CDATA[补发两数之和]]></title><link>https://blog.youkuaiyun.com/keepstandard/article/details/133305267</link><guid>https://blog.youkuaiyun.com/keepstandard/article/details/133305267</guid><author>keepstandard</author><pubDate>Tue, 26 Sep 2023 13:13:20 +0800</pubDate><description><![CDATA[因为这道题是要找和为target的两个目标值，并返回他们的下标，这个很关键，这个既要值，又要下标，所以想到用map。我们首先定义一个长度为2的整形数组ans来存放答案，接下来要创建一个HashMap来存储nums中的值和下标，我们需要用一个for循环来遍历数组nums，因为我们要的值temp是target-numsi。我们要判断temp是否存在于map中，如果找到了，就把i的值和key为temp的值存到ans中，跳出循环即可，若本次循环没找到，就把numsi的值和i存到map中，i++即可。]]></description><category></category></item><item><title><![CDATA[哈希表： 242.有效的字母异位词  349. 两个数组的交集 202. 快乐数  1. 两数之和]]></title><link>https://blog.youkuaiyun.com/keepstandard/article/details/133278830</link><guid>https://blog.youkuaiyun.com/keepstandard/article/details/133278830</guid><author>keepstandard</author><pubDate>Mon, 25 Sep 2023 23:54:20 +0800</pubDate><description><![CDATA[虽然以前在数据结构这个课里学过哈希表，但那时候也仅仅会的是理论知识，今天才真的做到了学有所用。哈希表的三种方式：数组，set，map。我们要知道什么时候要使用哈希表呢？那就是当我们要判断一个元素是否出现在集合中时。首先第一题有效的字母异位词，这个词听着确实很高级，但其实也就是判断两个字符串中出现的每个字符的出现次数是否相同。现说思路，因为两个字符串仅包含小写字母，要想到用数组，所以首先我们需要一个数组arr长度为26，从0-25存储从a-z每一个字符出现的次数。]]></description><category></category></item><item><title><![CDATA[补充day4]]></title><link>https://blog.youkuaiyun.com/keepstandard/article/details/133238165</link><guid>https://blog.youkuaiyun.com/keepstandard/article/details/133238165</guid><author>keepstandard</author><pubDate>Sun, 24 Sep 2023 13:13:41 +0800</pubDate><description><![CDATA[判断是否有环就是让快指针一次走两个，慢指针一次走一个，如果快指针和慢指针相遇了证明有环。2.环的位置，需要用数学公式来算，最后结论是从头节点出发的距离如果等于从相遇节点出发的距离，那么焦点就是环的位置具体我写的代码在下面。两个关键：1.是否有环；]]></description><category></category></item><item><title><![CDATA[代码随想录Day4(链表part2)● 24. 两两交换链表中的节点 ● 19.删除链表的倒数第N个节点 ● 面试题 02.07. 链表相交 ● 142.环形链表II]]></title><link>https://blog.youkuaiyun.com/keepstandard/article/details/133233029</link><guid>https://blog.youkuaiyun.com/keepstandard/article/details/133233029</guid><author>keepstandard</author><pubDate>Sun, 24 Sep 2023 11:07:33 +0800</pubDate><description><![CDATA[这里还是使用虚拟头节点，这样不需要考虑头节点这个特殊情况了。那该怎么（a，b）两两交换呢？首先我们要找到需要两两交换的前一个节点pro，先让pro指向b，然后让b指向a，最后让a指向b的下一个节点，这样除了我们自己设置的虚拟头节点以外，我们还需要记录三个节点，分别是fir，sec和thr，那么循环何时终止呢？当节点个数是奇数时，就是当我们的pro.next==null；偶数时则是pro.next.next==null。这样终止条件也分析出来了，pro节点在每一循环之后怎么移动呢？当然是向后移动两位。]]></description><category></category></item><item><title><![CDATA[补充day3]]></title><link>https://blog.youkuaiyun.com/keepstandard/article/details/133196750</link><guid>https://blog.youkuaiyun.com/keepstandard/article/details/133196750</guid><author>keepstandard</author><pubDate>Sat, 23 Sep 2023 09:07:44 +0800</pubDate><description><![CDATA[也是写了一遍就过了，其实这道题我感觉就是一定要搞懂我们自己定义的head是什么意思，head就是一个虚拟头节点，只要搞懂这个就没啥问题了。大早上的就是脑袋好使，]]></description><category></category></item><item><title><![CDATA[代码随想录Day3(链表part1) 203.移除链表元素   707.设计链表   206.反转链表]]></title><link>https://blog.youkuaiyun.com/keepstandard/article/details/133190178</link><guid>https://blog.youkuaiyun.com/keepstandard/article/details/133190178</guid><author>keepstandard</author><pubDate>Sat, 23 Sep 2023 01:14:38 +0800</pubDate><description><![CDATA[题目链接首先要明白链表元素移除的规则，假设要移除第x个元素，那么就要让x-1的next指向x+1具体的代码就是x-1.next=x-1.next.next;明白了这个这道题也就很好想了，也无非就是两种情况，移除的元素是头节点和不是头节点，如果移除的元素是不是头节点，那么按照之前说的移除操作就可以了，让x-1.next=x-1.next.next，如果移除头节点，因为头节点没有前一个节点，所以这种方法就不适用，具体的操作应该是将head=head.next；]]></description><category></category></item></channel></rss>