<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[tangpinger的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/tangpinger</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; tangpinger]]></copyright><item><title><![CDATA[关于在vue3路由拦截中使用pinia遇到的问题总结]]></title><link>https://blog.youkuaiyun.com/tangpinger/article/details/133066062</link><guid>https://blog.youkuaiyun.com/tangpinger/article/details/133066062</guid><author>tangpinger</author><pubDate>Wed, 20 Sep 2023 10:36:45 +0800</pubDate><description><![CDATA[但是这样却只能访问到pinia中的初始信息，pinia中的信息改变了路由拦截中是获取不到的，后来查看官方文档，发现可以在路由拦截中进行pinia的初始化，这样每次用户登录后存入的信息才能获取到，才能进行权限的校验，这是一个很坑的地方，用vuex就不会出现这个问题。由于pinia的初始化要晚于router的初始化，所以一开始按照网上的方法再在router中初始化一次pinia，这样确实能访问到pinia中的信息。]]></description><category></category></item><item><title><![CDATA[H5移动端vue-masonry + van-list实现瀑布流懒加载效果]]></title><link>https://blog.youkuaiyun.com/tangpinger/article/details/132136808</link><guid>https://blog.youkuaiyun.com/tangpinger/article/details/132136808</guid><author>tangpinger</author><pubDate>Sun, 06 Aug 2023 22:50:30 +0800</pubDate><description><![CDATA[【代码】H5移动端vue-masonry + van-list实现瀑布流懒加载效果。]]></description><category></category></item><item><title><![CDATA[leetCode2722 JS/TS专项 根据 ID 合并两个数组]]></title><link>https://blog.youkuaiyun.com/tangpinger/article/details/131615672</link><guid>https://blog.youkuaiyun.com/tangpinger/article/details/131615672</guid><author>tangpinger</author><pubDate>Sat, 08 Jul 2023 19:54:35 +0800</pubDate><description><![CDATA[根据题目要求，可以直接采用哈希表存入两个数组的元素，键值对为，item就是数组中的每个元素，首先存入arr1的元素，然后再遍历arr2，根据题目要求，如果哈希表中有与arr2中元素同名的id，arr1相同的键值对就替换成arr2的，不同的直接保留。要实现这个需求，可以自己写一个方法来实现，可以利用到Object.hasOwnProperty()方法，合并时需要注意的是不能打乱原来键值对的顺序，意思是如果arr2中单独出现的键值对在合并时就只能添加到对象的后面。]]></description><category></category></item><item><title><![CDATA[刷题之路-leetCode1253. 重构 2 行二进制矩阵 by TypeScript]]></title><link>https://blog.youkuaiyun.com/tangpinger/article/details/131466406</link><guid>https://blog.youkuaiyun.com/tangpinger/article/details/131466406</guid><author>tangpinger</author><pubDate>Thu, 29 Jun 2023 23:32:41 +0800</pubDate><description><![CDATA[根据所有的条件，我们可以采用贪心算法策略 + 两次扫描即可解决本问题，第一次扫描先填充colsum数组中元素为2的对应的列数，填充的同时需要依次将upper和lower减减。第二次扫描再满足colsum数组中元素为1的情况，upper更大就先填充第一行，否则填充第二行。两次遍历完后，如果这个二维矩阵是符合条件的，那么upper和lower都应为0，否则为无效答案，应该返回一个空数组。3.返回的二进制矩阵只有两行，列数与colsum数组相同。2.colsum数组中的元素最大为2，最小为0；]]></description><category></category></item><item><title><![CDATA[leetCode JS/TS专属题 2622. 有时间限制的缓存]]></title><link>https://blog.youkuaiyun.com/tangpinger/article/details/131445195</link><guid>https://blog.youkuaiyun.com/tangpinger/article/details/131445195</guid><author>tangpinger</author><pubDate>Wed, 28 Jun 2023 21:34:57 +0800</pubDate><description><![CDATA[使用Map + 定时器来解决，我们可以创建一个Map，在set()方法中先判断Map中是否有还未过期的键值对，如果存在，先清掉之前设置的定时器，防止之前的定时器将当前设置的键值对删掉，然后再设置新的定时器，定时器的作用就是经过duration毫秒后，删掉当前键值对，就代表它过期了。]]></description><category></category></item><item><title><![CDATA[leetCode1023. 驼峰式匹配 正则表达式 by JavaScript]]></title><link>https://blog.youkuaiyun.com/tangpinger/article/details/131255020</link><guid>https://blog.youkuaiyun.com/tangpinger/article/details/131255020</guid><author>tangpinger</author><pubDate>Fri, 16 Jun 2023 23:40:40 +0800</pubDate><description><![CDATA[先遍历pattern构建正则表达式，题目说明了queries和pattern都由英文字母组成，那么就很好构建，pattern里面的每一个字母只能出现一次，而每个字符之间又可以出现0个或多个小写英文字母。构建好之后，遍历queries直接查询即可。]]></description><category></category></item><item><title><![CDATA[Node.js 中间件及ejs模板引擎的使用]]></title><link>https://blog.youkuaiyun.com/tangpinger/article/details/131237267</link><guid>https://blog.youkuaiyun.com/tangpinger/article/details/131237267</guid><author>tangpinger</author><pubDate>Thu, 15 Jun 2023 23:19:13 +0800</pubDate><description><![CDATA[hello express]]></description><category></category></item><item><title><![CDATA[leetCode1171. 从链表中删去总和值为零的连续节点(分析 + 注释) by TypeScript]]></title><link>https://blog.youkuaiyun.com/tangpinger/article/details/131166804</link><guid>https://blog.youkuaiyun.com/tangpinger/article/details/131166804</guid><author>tangpinger</author><pubDate>Mon, 12 Jun 2023 13:44:53 +0800</pubDate><description><![CDATA[然后不断的循环遍历这个哈希表，来删除和为0的区间，每执行完一次删除区间操作，就需要将哈希表清空，然后再根据新的前缀和数组进行存取，不断地执行这些操作，当找不到拥有相同前缀和的节点了，就可以结束循环。最简单的做法，先将链表所有节点的值全部push到一个数组中，另开辟一个数组存放这些值的前缀和，开辟一个哈希表存放拥有相同前缀和节点的下标位置，放在一个数组中，为什么要这样存呢？]]></description><category></category></item><item><title><![CDATA[leetCode1604. 警告一小时内使用相同员工卡大于等于三次的人 详细分析加注释 by JavaScript]]></title><link>https://blog.youkuaiyun.com/tangpinger/article/details/131117468</link><guid>https://blog.youkuaiyun.com/tangpinger/article/details/131117468</guid><author>tangpinger</author><pubDate>Thu, 08 Jun 2023 23:15:27 +0800</pubDate><description><![CDATA[先将keyTime中每一项时刻的冒号都替换掉，变成数字字符串，再使用Hash Map来存每位员工的用卡时刻。遍历Hash Map中每位员工的时刻表（需要先按时间先后排序），判断是否有连续3个及以上的时刻都在一个小时内，具体到代码： 就是判断3个时刻中，当前项与后一项的差值总和不超过100（因为这里已经将时刻转换为了数字字符串，比如12:00和13:00之间相差60min，但转换过后对应的就是1300 - 1200 = 100），只要存在这样连续的3个时刻就立即结束循环，这个员工就是要找的那个员工。]]></description><category></category></item><item><title><![CDATA[leetCode2611. 老鼠和奶酪]]></title><link>https://blog.youkuaiyun.com/tangpinger/article/details/131093657</link><guid>https://blog.youkuaiyun.com/tangpinger/article/details/131093657</guid><author>tangpinger</author><pubDate>Wed, 07 Jun 2023 18:35:36 +0800</pubDate><description><![CDATA[每块奶酪都是要被鸭脖吃掉的，取决于被哪只鸭脖吃，第一只鸭脖恰好要吃掉k块奶酪，我们可以先让第二只鸭脖吃掉所有的鸭脖，使用贪心算法，将两只鸭脖分别要吃的奶酪差值计算出来放在一个数组中，将这个数组降序排序，从头选取k个奶酪给第一只鸭脖吃即可，这里直接累加差值更新结果即可。块不同类型的奶酪，每块奶酪都只能被其中一只鸭脖吃掉。请你返回第一只鸭脖恰好吃掉。]]></description><category></category></item><item><title><![CDATA[leetCode2352. 相等行列对 Hash Map模拟 by JavaScript]]></title><link>https://blog.youkuaiyun.com/tangpinger/article/details/131074185</link><guid>https://blog.youkuaiyun.com/tangpinger/article/details/131074185</guid><author>tangpinger</author><pubDate>Tue, 06 Jun 2023 19:13:40 +0800</pubDate><description><![CDATA[就是找这个矩阵中有多少种行列都相等的情况，这里使用Hash Map对每一行进行计数，key存储为String类型，可以借助JSON.stringify()方法对每一行进行转换，然后再次遍历。，对每一列进行查找，如果在Hash Map中找到了就更新结果。]]></description><category></category></item><item><title><![CDATA[leetCode2559. 统计范围内的元音字符串数 by JavaScript]]></title><link>https://blog.youkuaiyun.com/tangpinger/article/details/131003840</link><guid>https://blog.youkuaiyun.com/tangpinger/article/details/131003840</guid><author>tangpinger</author><pubDate>Fri, 02 Jun 2023 11:37:23 +0800</pubDate><description><![CDATA[使用前缀和统计words中当前位置之前的元音字符串个数，遍历queries计算结果，用结尾处的元音字符串个数减去开始处的个数得到结果，压入数组。]]></description><category></category></item><item><title><![CDATA[解决node.js中前端使用POST请求，后端end过早，前端拿不到数据返回空白的问题]]></title><link>https://blog.youkuaiyun.com/tangpinger/article/details/130998138</link><guid>https://blog.youkuaiyun.com/tangpinger/article/details/130998138</guid><author>tangpinger</author><pubDate>Fri, 02 Jun 2023 00:21:27 +0800</pubDate><description><![CDATA[这里有一个问题，由于在接口中监听的on事件是异步执行的，在server.js中调用接口函数时，数据还没收集完，render()方法还没有渲染完数据返回给前端，服务器就过早执行end响应了，导致页面上后端返回的是空白。最开始的时候在req上监听on事件一点一点接收数据，数据收集完毕时调用render()方法处理数据并返回给前端，然后在server.js中的服务器方法中执行res.end()响应。在接口方法中接收，数据收集完毕后执行render()方法将这个回调函数传进去。]]></description><category></category></item><item><title><![CDATA[leetCode1003. 检查替换后的词是否有效 栈 + HashMap by JavaScript]]></title><link>https://blog.youkuaiyun.com/tangpinger/article/details/130971836</link><guid>https://blog.youkuaiyun.com/tangpinger/article/details/130971836</guid><author>tangpinger</author><pubDate>Wed, 31 May 2023 16:32:29 +0800</pubDate><description><![CDATA[这道题与有效的括号类似，只不过要多考虑几种情况，先用HashMap存入两种对应的情况，直接遍历s，遇到'ab'、'a'入栈，遇到'c'、'bc'出栈，如果栈顶为'a'，当前遍历到的字符为'b'，直接将'b': 'c'存入哈希表，以应对'a...b...c'这种情况，最后判断栈是否为空即可。]]></description><category></category></item><item><title><![CDATA[leetCode198. 打家劫舍 简单动态规划 by JavaScript]]></title><link>https://blog.youkuaiyun.com/tangpinger/article/details/130947338</link><guid>https://blog.youkuaiyun.com/tangpinger/article/details/130947338</guid><author>tangpinger</author><pubDate>Tue, 30 May 2023 14:21:21 +0800</pubDate><description><![CDATA[dp方程：dp[i] = (dp[i - 2] + nums[i]) > dp[i - 1]?根据题目描述，小偷不能偷相邻的两家，先初始化dp前两位。]]></description><category></category></item><item><title><![CDATA[node.js使用cheerio模块实现简易爬虫函数]]></title><link>https://blog.youkuaiyun.com/tangpinger/article/details/130906342</link><guid>https://blog.youkuaiyun.com/tangpinger/article/details/130906342</guid><author>tangpinger</author><pubDate>Sat, 27 May 2023 21:45:47 +0800</pubDate><description><![CDATA[创建入口文件spider.js并引入cheerio模块，在spider.js中创建一个服务器并获取到网站的HTML信息，然后创建spider函数爬取这个网站的指定信息并返回给我们的服务器。首先使用 npm init初始化项目生成package.json文件和node_modules文件夹，再使用npm i cheerio --save安装cheerio模块。有些网站的部分模块并不是采用前后端分离模式开发的，而是后端直接将模板渲染在网页上的，这时候我们就可以使用爬虫技术爬取到这些信息。]]></description><category></category></item><item><title><![CDATA[JavaScript JSON.stringify()在算法中的一点小应用]]></title><link>https://blog.youkuaiyun.com/tangpinger/article/details/130885619</link><guid>https://blog.youkuaiyun.com/tangpinger/article/details/130885619</guid><author>tangpinger</author><pubDate>Fri, 26 May 2023 14:16:54 +0800</pubDate><description><![CDATA[其他字符串的差值整数数组都相同，那我可以直接把这些数组求出来然后遍历找不同就行了，但我们都知道，两个数组是不能直接使用'==='或'=='比较的，我们可以使用every()方法来遍历数组进行比较，但使用every()方法写起来太过繁琐，一点都不简洁，所以这里我想到了使用JSON.stringify()将数组转换为字符串形式来进行比较，方法是可行的，因为两个字符串之间可以直接进行比较。来自于leetCode2451. 差值数组不同的字符串，是一道简单题。，每一个字符串长度都相同，令所有字符串的长度都为。]]></description><category></category></item><item><title><![CDATA[Vue2.x自定义指令实现header吸顶效果]]></title><link>https://blog.youkuaiyun.com/tangpinger/article/details/130882738</link><guid>https://blog.youkuaiyun.com/tangpinger/article/details/130882738</guid><author>tangpinger</author><pubDate>Fri, 26 May 2023 11:10:20 +0800</pubDate><description><![CDATA[在有些场景中，我们需要实现一个header在向下滑动到一定距离时自动出现，否则隐藏，我们可以使用Vue2.x的自定义指令来实现。实现方法就是，在自定义指令中给window监听一个scroll事件，判断滚动的位置，设置组件的隐藏显示。]]></description><category></category></item><item><title><![CDATA[使用node.js作为客户端，分别使用GET和POST方式转发其他网站的数据]]></title><link>https://blog.youkuaiyun.com/tangpinger/article/details/130870648</link><guid>https://blog.youkuaiyun.com/tangpinger/article/details/130870648</guid><author>tangpinger</author><pubDate>Thu, 25 May 2023 16:52:57 +0800</pubDate><description><![CDATA[使用node.js作为中间层，向其他网站拿数据，node本身就相当于一个服务器，服务器和服务器之间是没有跨域限制的，拿到数据后，再在自己的网页中请求node服务器上的数据，以此来解决跨域限制。]]></description><category></category></item><item><title><![CDATA[leetCode1090.受标签影响的最大值 by JavaScript]]></title><link>https://blog.youkuaiyun.com/tangpinger/article/details/130870197</link><guid>https://blog.youkuaiyun.com/tangpinger/article/details/130870197</guid><author>tangpinger</author><pubDate>Thu, 25 May 2023 16:38:30 +0800</pubDate><description><![CDATA[意思就是一共有几个物品，每个物品都有自己的重量和标签，现在要拿总数不超过numWanted个物品，而且每种物品最多拿useLimit个，求最重可以拿多重的物品。明确题意后，按重量排序后使用哈希表记录每种物品拿的个数，贪心即可。个元素的值和标签分别是。个元素中选择一个子集。]]></description><category></category></item></channel></rss>