<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[啊哦]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sinat_35282516</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sinat_35282516]]></copyright><item><title><![CDATA[单元测试使用Thread.sleep()后线程直接停止]]></title><link>https://blog.youkuaiyun.com/sinat_35282516/article/details/128006935</link><guid>https://blog.youkuaiyun.com/sinat_35282516/article/details/128006935</guid><author>sinat_35282516</author><pubDate>Wed, 23 Nov 2022 20:15:07 +0800</pubDate><description><![CDATA[单元测试中测试多线程，使用sleep()阻塞线程，但是运行后发现Thread.sleep()后的代码不执行，直接退出了线程。在单元测试中，如果子线程处于阻塞、死亡状态时，单元测试会立刻停止所有子线程。如下图，不会输出running。]]></description><category></category></item><item><title><![CDATA[pdd-第二题]]></title><link>https://blog.youkuaiyun.com/sinat_35282516/article/details/119087848</link><guid>https://blog.youkuaiyun.com/sinat_35282516/article/details/119087848</guid><author>sinat_35282516</author><pubDate>Sun, 25 Jul 2021 21:15:33 +0800</pubDate><description><![CDATA[class Solution {
        public int trailingZeroes(int n) {
            int[] a = { 1, 2, 3, 4 };
            int[] b = { 5, 6, 7, 8 };
            List&lt;Integer&gt; list1 = new ArrayList&lt;Integer&gt;();
            List&lt;Integer&gt; list2 = new Arr.]]></description><category></category></item><item><title><![CDATA[leetcode 中级算法 排序和搜索]]></title><link>https://blog.youkuaiyun.com/sinat_35282516/article/details/119001598</link><guid>https://blog.youkuaiyun.com/sinat_35282516/article/details/119001598</guid><author>sinat_35282516</author><pubDate>Fri, 23 Jul 2021 13:42:10 +0800</pubDate><description><![CDATA[颜色分类
直接sort
双指针，标记0和2的位置
快排
前k个高频元素
对每个元素计数，用sortedmap排序
有时候如果需要倒序排列，可用负数来计数，这样最大就变成了最小的。
数组中的第K个最大元素
排序
快排，确定第k个元素
堆排序
寻找峰值
暴力，二分都可
在排序数组中查找元素的第一个和最后一个位置
二分
合并区间
排序，合并，模拟就完事了
搜索旋转排序数组
按对角线搜索，缩小搜索区域
搜索二维矩阵II
分类讨论，按照mid指针可能指向的三种情况分类
然后再按照target可能处在的区间分类。一共.]]></description><category></category></item><item><title><![CDATA[leetcode 中级算法 回溯]]></title><link>https://blog.youkuaiyun.com/sinat_35282516/article/details/118556960</link><guid>https://blog.youkuaiyun.com/sinat_35282516/article/details/118556960</guid><author>sinat_35282516</author><pubDate>Wed, 07 Jul 2021 20:59:12 +0800</pubDate><description><![CDATA[电话号码的字母组合
回溯就完事了
括号生成
生成所有排列，检查合法性，也可以直接添加（）生成合法的串
全排列
递归排就完事了
子集
递归排就ok了
单词搜索
二维数组用clone()是浅复制，在操作过程中数组值会被改变。
强行把二维变一维标记数组，快了一些。

写回溯这几个题，发现collection作为参数传递的时候值的改变是会影响到上一层的。【不过可以在处理完成后再改回去】
二维数组也是，用clone()是浅复制，只能for循环赋值深复制。但是一维数组clone()是深复制

...]]></description><category></category></item><item><title><![CDATA[leetcode 中级算法 树和图]]></title><link>https://blog.youkuaiyun.com/sinat_35282516/article/details/118556421</link><guid>https://blog.youkuaiyun.com/sinat_35282516/article/details/118556421</guid><author>sinat_35282516</author><pubDate>Wed, 07 Jul 2021 20:26:37 +0800</pubDate><description><![CDATA[二叉树中序遍历
DFS
morris：参考线索二叉树，把左子树最右结点指向根节点，然后直接返回根节点的左节点


二叉树锯齿层次遍历
层次遍历，中间翻转一下即可，可用deque


前序+中序构建二叉树
关键在于确定左中右三个部分的起始与结束位置。


填充每一个结点的下一个右侧结点
队列BFS可
递归直接left-&gt;right不可，但可利用已连接的部分找到下一个结点


二叉搜索树中第k小的元素
遍历二叉搜索树


岛屿数量
1）并查集.
置l[i]=i，有其他相邻已被标记的岛屿则更新l[i]值..]]></description><category></category></item><item><title><![CDATA[leetcode 中级算法 链表]]></title><link>https://blog.youkuaiyun.com/sinat_35282516/article/details/118541747</link><guid>https://blog.youkuaiyun.com/sinat_35282516/article/details/118541747</guid><author>sinat_35282516</author><pubDate>Wed, 07 Jul 2021 10:46:04 +0800</pubDate><description><![CDATA[两数相加
大数加法的链表形式。
对应位相加，记录进位即可。
加速：其中一个链表计算完毕时可将另一个链表剩下的部分直接挂到结果上。
奇偶链表
非原地：分别取出来。再接上
原地：设置两个头指针，每次处理两个结点，让结点指向下一个结点的下一个结点，交替操作。
相交链表
看两个链表长度，计算长度之差，双指针在离结尾相同位置往后移动，check，因为如果相交，结尾部分一定相同。


...]]></description><category></category></item><item><title><![CDATA[Vue router 页面刷新 参数]]></title><link>https://blog.youkuaiyun.com/sinat_35282516/article/details/118090473</link><guid>https://blog.youkuaiyun.com/sinat_35282516/article/details/118090473</guid><author>sinat_35282516</author><pubDate>Mon, 21 Jun 2021 17:05:06 +0800</pubDate><description><![CDATA[路径中带参，页面刷新后参数还在，但是获取不到数据了，
仔细看发现参数从数字变成了字符串。
刷新前index是数字2

刷新后，index变成了字符串"2"

刷新后重新处理一下或者串字符串参数即可

]]></description><category></category></item><item><title><![CDATA[leetcode 中级算法 数组与字符串]]></title><link>https://blog.youkuaiyun.com/sinat_35282516/article/details/118002287</link><guid>https://blog.youkuaiyun.com/sinat_35282516/article/details/118002287</guid><author>sinat_35282516</author><pubDate>Thu, 17 Jun 2021 22:07:18 +0800</pubDate><description><![CDATA[三数之和
排序，num+left+right 计算
小了left右移，大了right左移
问题是判重，用set会很慢。
按num，left，right分别判断，数值变化才做计算
矩阵置零
标记含零的行和列，题解中的优化只是利用了矩阵的第一行来存储标记
字母异位词
标记数组中字母出现个数，对比标记数组，但是好像很慢
无重复字符的最长子串
利用队列，遍历字符串，将字符串入队，记录长度，如果有重复的字符出现，出队重复的部分。
最长回文子串
1）暴力枚举
2）官方题解dp
和暴力类似，但是暴力每次对比整个字符串，.]]></description><category></category></item><item><title><![CDATA[Vue 数据改变 表格不立即更新问题]]></title><link>https://blog.youkuaiyun.com/sinat_35282516/article/details/117854026</link><guid>https://blog.youkuaiyun.com/sinat_35282516/article/details/117854026</guid><author>sinat_35282516</author><pubDate>Sat, 12 Jun 2021 18:56:21 +0800</pubDate><description><![CDATA[点击编辑，应该立即显示完成和取消按钮。
但是编辑状态改变后要再点一下表格数据才会刷新。
问题在于
由于 JavaScript 的限制，Vue 不能检测以下数组的变动：

当你利用索引直接设置一个数组项时，例如：vm.items[indexOfItem] = newValue
当你修改数组的长度时，例如：vm.items.length = newLength

解决办法：用 Vue.set替代直接改变数组值
this.$set(this.tableData, this.currentRow, this.p..]]></description><category></category></item><item><title><![CDATA[leetcode 初级算法 其他]]></title><link>https://blog.youkuaiyun.com/sinat_35282516/article/details/117077589</link><guid>https://blog.youkuaiyun.com/sinat_35282516/article/details/117077589</guid><author>sinat_35282516</author><pubDate>Thu, 20 May 2021 15:11:19 +0800</pubDate><description><![CDATA[颠倒二进制位
给出的是十进制数，位运算手动转换快
缺失数字
Hashmap很慢
把数字排序，看两数之差，如果查值大于一则中间缺少数字。
置换【原地
把遇到的每一个正数i放到a[i]位置上，遍历如果a[i]！=i那么这个数就缺了


...]]></description><category></category></item><item><title><![CDATA[leetcode 初级算法 动态规划]]></title><link>https://blog.youkuaiyun.com/sinat_35282516/article/details/117077175</link><guid>https://blog.youkuaiyun.com/sinat_35282516/article/details/117077175</guid><author>sinat_35282516</author><pubDate>Thu, 20 May 2021 15:04:06 +0800</pubDate><description><![CDATA[爬楼梯
累加递推可直接得到结果
由递推公式也可矩阵快速幂计算
题解通项公式没细看
最大子序和
dp
还可线段树分治


]]></description><category></category></item><item><title><![CDATA[leetcode 初级算法 数学]]></title><link>https://blog.youkuaiyun.com/sinat_35282516/article/details/117076903</link><guid>https://blog.youkuaiyun.com/sinat_35282516/article/details/117076903</guid><author>sinat_35282516</author><pubDate>Thu, 20 May 2021 14:58:28 +0800</pubDate><description><![CDATA[1.计数质数
线性筛和埃氏筛法都可，理论上线性筛应该更快，实际跑出来埃氏筛法更快，可能和数据有关
2.3的幂
用乘法计算可能会超int范围，最好用除法

]]></description><category></category></item><item><title><![CDATA[回文链表，环形链表]]></title><link>https://blog.youkuaiyun.com/sinat_35282516/article/details/116714939</link><guid>https://blog.youkuaiyun.com/sinat_35282516/article/details/116714939</guid><author>sinat_35282516</author><pubDate>Wed, 12 May 2021 18:07:56 +0800</pubDate><description><![CDATA[回文：
翻转比较。
问题在于找到中间的点。链表不像线性表那么方便。
双指针，slow=slow.next,fast=fast.next。


环形：
判环：
(1)可以用set，但是很慢。
(2)快慢指针，中间存在差值。如果有环，fast会给slow套圈。
(3)如果有环，翻转链表，头结点不变。
(4)删除结点【让p.next=p】逐个删除，删除前判断p.next,如果p.next=p，则有环



...]]></description><category></category></item><item><title><![CDATA[字符串类型题目小结]]></title><link>https://blog.youkuaiyun.com/sinat_35282516/article/details/116703477</link><guid>https://blog.youkuaiyun.com/sinat_35282516/article/details/116703477</guid><author>sinat_35282516</author><pubDate>Wed, 12 May 2021 12:50:36 +0800</pubDate><description><![CDATA[越界
字符串匹配类的题不要忘记越界判定
数据类型
java中数据可用的数据类型太多了，选择合适的数据类型对运行时间的影响比较大。
String,StringBuffer等.


String因为是final类型的，是不可变类，所以对于append等操作，是要重新new
String的，而StringBuffer是可变类，不需要重新new StringBuffer，所以在字符串操作上性能非常好，而且好的不是一点点。(https://www.cnblogs.com/x_wukong/p/3970525.htm.]]></description><category></category></item><item><title><![CDATA[leetcode 125 回文串]]></title><link>https://blog.youkuaiyun.com/sinat_35282516/article/details/116525747</link><guid>https://blog.youkuaiyun.com/sinat_35282516/article/details/116525747</guid><author>sinat_35282516</author><pubDate>Sat, 08 May 2021 14:11:16 +0800</pubDate><description><![CDATA[串中除了字母还有数字和符号，
要求字母和数字回文，其他符号忽略
大小写可以匹配
注意匹配的时候，区分纯字母和数字字母匹配情况
字母大小写相差32，但是数字和字母之间也可以相差32！
1.双指针
2.可以删除无效字母后翻转和原字符串比较

...]]></description><category></category></item><item><title><![CDATA[leetcode 242 有效的字母异位词]]></title><link>https://blog.youkuaiyun.com/sinat_35282516/article/details/116525012</link><guid>https://blog.youkuaiyun.com/sinat_35282516/article/details/116525012</guid><author>sinat_35282516</author><pubDate>Sat, 08 May 2021 13:39:34 +0800</pubDate><description><![CDATA[1.哈希表
数组计数，s+，t-，判断最后表中值是否全为0
2.Arrays.equals
Array.sort排序，然后对比两个字符串是否相等

]]></description><category></category></item><item><title><![CDATA[leetcode 1 两数之和]]></title><link>https://blog.youkuaiyun.com/sinat_35282516/article/details/116464743</link><guid>https://blog.youkuaiyun.com/sinat_35282516/article/details/116464743</guid><author>sinat_35282516</author><pubDate>Thu, 06 May 2021 22:25:19 +0800</pubDate><description><![CDATA[1.排序
排序后双指针
小+大，与target比较
小了说明小数过小，左++
大了说明大数过大，右–
但是这里需要返回坐标，最后还要找下标，会慢
2.hashmap
找target-x更方便。
题目中可能出现两个重复值的和为target的情况。
这种情况下先找target-x，如果有重复值一定已经先存入了hashmap。
找得到则直接输出表中的坐标和当前值坐标。
省去找下标，更快

...]]></description><category></category></item><item><title><![CDATA[leetcode 283 移动零]]></title><link>https://blog.youkuaiyun.com/sinat_35282516/article/details/116464313</link><guid>https://blog.youkuaiyun.com/sinat_35282516/article/details/116464313</guid><author>sinat_35282516</author><pubDate>Thu, 06 May 2021 22:00:38 +0800</pubDate><description><![CDATA[1.双指针
left：第一个0
right:第一个0后面的第一个非0
然后交换
2.覆盖
0没有意义不用管。
遍历时把非0值按顺序从数组尾部往前放。
遍历结束后reverse数组。

]]></description><category></category></item><item><title><![CDATA[leetcode 136 位运算]]></title><link>https://blog.youkuaiyun.com/sinat_35282516/article/details/116451587</link><guid>https://blog.youkuaiyun.com/sinat_35282516/article/details/116451587</guid><author>sinat_35282516</author><pubDate>Thu, 06 May 2021 13:01:55 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[leetcode每日一题 80 删除有序数组中的重复项 II]]></title><link>https://blog.youkuaiyun.com/sinat_35282516/article/details/115459307</link><guid>https://blog.youkuaiyun.com/sinat_35282516/article/details/115459307</guid><author>sinat_35282516</author><pubDate>Tue, 06 Apr 2021 13:58:09 +0800</pubDate><description><![CDATA[很简单，水一水
/*
 * @lc app=leetcode.cn id=80 lang=java
 *
 * [80] 删除排序数组中的重复项 II
 */

// @lc code=start
class Solution {
    public int removeDuplicates(int[] nums) {
        if (nums.length == 1)
            return 1;
        int cloc = 0; // 最后一个不重复数字下标
     ]]></description><category></category></item></channel></rss>