<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[daokoi的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/daokoi</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; daokoi]]></copyright><item><title><![CDATA[2、云计算学习：ENGINEER]]></title><link>https://blog.youkuaiyun.com/daokoi/article/details/124916369</link><guid>https://blog.youkuaiyun.com/daokoi/article/details/124916369</guid><author>daokoi</author><pubDate>Mon, 30 May 2022 17:35:11 +0800</pubDate><description><![CDATA[文章目录一、计划任务1.1 基础知识1.2 crontab命令：编辑、查看、清除计划任务1.3 计划任务书写格式二、基本权限与归属2.1 基础知识2.2 chmod命令：修改权限
一、计划任务
1.1 基础知识

计划任务的用途：按照设置的时间间隔为用户反复执行某一项固定的系统任务
计划任务所需安装的软件包：cronie、crontabs（默认自动安装）
计划任务软件包所对应的服务（程序）：crond（开启自启动）
记录周期性计划任务的日志文件：/var/log/cron

1.2 crontab命令：编辑]]></description><category></category></item><item><title><![CDATA[1、云计算学习：ADMIN]]></title><link>https://blog.youkuaiyun.com/daokoi/article/details/124705928</link><guid>https://blog.youkuaiyun.com/daokoi/article/details/124705928</guid><author>daokoi</author><pubDate>Sun, 22 May 2022 13:59:43 +0800</pubDate><description><![CDATA[一、云计算ADMIN学习笔记
1、TCP/IP协议及配置

]]></description><category></category></item><item><title><![CDATA[LeetCode第13题：括号生成]]></title><link>https://blog.youkuaiyun.com/daokoi/article/details/124160981</link><guid>https://blog.youkuaiyun.com/daokoi/article/details/124160981</guid><author>daokoi</author><pubDate>Wed, 13 Apr 2022 23:35:08 +0800</pubDate><description><![CDATA[题目：
括号生成 	
数字 n 代表生成括号的对数，请你设计一个函数，用于能够生成所有可能的并且 有效的 括号组合。
示例 1：
输入：n = 3
输出：[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]
算法：
本题采用回溯算法。
代码：
package suanfa.括号生成_13;

import java.util.ArrayList;
import java.util.List;

/*
括号生成
数字 n 代表生成括号的对数，请你设计一个函数，用于能够生]]></description><category></category></item><item><title><![CDATA[LeetCode第12题：合并两个有序链表]]></title><link>https://blog.youkuaiyun.com/daokoi/article/details/124135236</link><guid>https://blog.youkuaiyun.com/daokoi/article/details/124135236</guid><author>daokoi</author><pubDate>Tue, 12 Apr 2022 21:47:50 +0800</pubDate><description><![CDATA[题目：
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例 1：
输入：l1 = [1,2,4], l2 = [1,3,4]
输出：[1,1,2,3,4,4]

一、解题思路及图解过程
思路：
我们可以用迭代的方法来实现上述算法。当 l1 和 l2 都不是空链表时，判断 l1 和 l2 哪一个链表的头节点的值更小，将较小值的节点添加到结果里，当一个节点被添加到结果里之后，将对应链表中的节点向后移一位。
图解：

二、代码
package suanfa.合并]]></description><category></category></item><item><title><![CDATA[LeetCode第11题：有效的括号]]></title><link>https://blog.youkuaiyun.com/daokoi/article/details/124107166</link><guid>https://blog.youkuaiyun.com/daokoi/article/details/124107166</guid><author>daokoi</author><pubDate>Mon, 11 Apr 2022 23:19:09 +0800</pubDate><description><![CDATA[题目：
有效的括号
给定一个只包括 ‘(’，‘)’，‘{’，‘}’，‘[’，‘]’ 的字符串 s ，判断字符串是否有效。
有效字符串需满足：
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
示例 1：
输入：s = “()”
输出：true
一、图解过程
采用栈（stack）的方式。


二、代码
package suanfa.有效的括号_11;

import java.util.Stack;

public class Eleven11 {
    public static void]]></description><category></category></item><item><title><![CDATA[LeetCode第10题：删除链表的倒数第 N 个结点]]></title><link>https://blog.youkuaiyun.com/daokoi/article/details/124095295</link><guid>https://blog.youkuaiyun.com/daokoi/article/details/124095295</guid><author>daokoi</author><pubDate>Mon, 11 Apr 2022 12:16:27 +0800</pubDate><description><![CDATA[题目：
删除链表的倒数第 N 个结点
给你一个链表，删除链表的倒数第 n 个结点，并且返回链表的头结点。
示例1：

输入：head = [1,2,3,4,5], n = 2
输出：[1,2,3,5]
一、算法

算法说明：
本题采用双指针算法（此题也可叫快慢指针），由于我们需要找到倒数第 n个节点，因此我们可以使用两个指针fast和 slow同时对链表进行遍历，并且fast比 slow 超前n个节点。当 fast遍历到链表的末尾时，slow就恰好处于倒数第 n个节点。
技巧：
在对链表进行操作时，一种常用]]></description><category></category></item><item><title><![CDATA[LeetCode第8题：三数之和]]></title><link>https://blog.youkuaiyun.com/daokoi/article/details/124084651</link><guid>https://blog.youkuaiyun.com/daokoi/article/details/124084651</guid><author>daokoi</author><pubDate>Sun, 10 Apr 2022 21:08:17 +0800</pubDate><description><![CDATA[题目：
三数之和
给你一个包含 n 个整数的数组 nums，判断 nums 中是否存在三个元素 a，b，c ，使得 a + b + c = 0 ？请你找出所有和为 0 且不重复的三元组。
注意：答案中不可以包含重复的三元组。
示例 1：
输入：nums = [-1,0,1,2,-1,-4]
输出：[[-1,-1,2],[-1,0,1]]
一、算法介绍
本题采用双指针算法。双指针算法需要先将给定的输入数组进行排序，这样可以避免出现重复元素。

解题思路：
假设输入数组为n，数组长度为len；
1）固定 3个指]]></description><category></category></item><item><title><![CDATA[LeetCode第9题：电话号码的字母组合]]></title><link>https://blog.youkuaiyun.com/daokoi/article/details/124072251</link><guid>https://blog.youkuaiyun.com/daokoi/article/details/124072251</guid><author>daokoi</author><pubDate>Sun, 10 Apr 2022 14:07:21 +0800</pubDate><description><![CDATA[题目：
电话号码的字母组合
给定一个仅包含数字 2-9 的字符串，返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下（与电话按键相同）。注意 1 不对应任何字母。

示例 ：
输入：digits = “23”
输出：[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]
一、算法介绍

回溯算法：是一种暴力搜索方法。
主要应用于以下问题：
1）组合问题：N个数⾥⾯按⼀定规则找出k个数的集合；
2）切割问题：⼀个字符串按⼀定规则有⼏种切割⽅]]></description><category></category></item><item><title><![CDATA[商品服务4-三级分类-删除]]></title><link>https://blog.youkuaiyun.com/daokoi/article/details/123966416</link><guid>https://blog.youkuaiyun.com/daokoi/article/details/123966416</guid><author>daokoi</author><pubDate>Tue, 05 Apr 2022 20:26:12 +0800</pubDate><description><![CDATA[文章目录1、三级分类删除的页面效果2、三级分类逻辑删除的实现
1、三级分类删除的页面效果
前端代码的调整参考：https://element.eleme.cn/#/zh-CN/component/tree
调整后的代码如下：
&lt;template&gt;
&lt;!--
1、:expand-on-click-node="false"只有点箭头图标的时候才会展开或者收缩节点。
2、show-checkbox节点是否可被选择,展示复选框
3、node-key="catId"每个树节点用来作为唯一标识的属性，]]></description><category></category></item><item><title><![CDATA[商品服务3-三级分类-查询展示三级分类数据]]></title><link>https://blog.youkuaiyun.com/daokoi/article/details/123964566</link><guid>https://blog.youkuaiyun.com/daokoi/article/details/123964566</guid><author>daokoi</author><pubDate>Tue, 05 Apr 2022 10:29:35 +0800</pubDate><description><![CDATA[一、配置如何发送请求访问到真正的三级分类数据
在解决跨域问题之后可以登录人人快速开发平台，但是点进去分类维护列表时，会发现在访问product/category/list/tree时报错，因为请求是去网关（88）里找分类的数据，而真正的三级分类数据是在gulimall-product服务里，所以要在网关里进行路径重写：


如果像上图中路径重写的配置顺序是renren-fast在上，gulimall-product在下，那在重启网关后，访问http://localhost:88/api/product/ca]]></description><category></category></item><item><title><![CDATA[LeetCode第5题：最长回文子串]]></title><link>https://blog.youkuaiyun.com/daokoi/article/details/123952216</link><guid>https://blog.youkuaiyun.com/daokoi/article/details/123952216</guid><author>daokoi</author><pubDate>Mon, 04 Apr 2022 14:37:28 +0800</pubDate><description><![CDATA[题目：
最长回文子串
给你一个字符串 s，找到 s 中最长的回文子串。
示例 1：
输入：s = “babad”
输出：“bab”
解释：“aba” 同样是符合题意的答案。
注：回文字符串就是该字符串正着读和倒着读的顺序一模一样。
一、算法介绍

算法：动态规划
思路：一个回文子串去掉两头以后，剩下的部分依然是回文子串。
状态：dp[i][j]表示子串s[i…j]是否为回文子串。
状态转移方程：dp[i][j] = (s[i]==s[j]) and dp[i+1][j-1]
边界条件：j-1-(i+1)+1]]></description><category></category></item><item><title><![CDATA[LeetCode第4题：寻找两个正序数组的中位数]]></title><link>https://blog.youkuaiyun.com/daokoi/article/details/123935212</link><guid>https://blog.youkuaiyun.com/daokoi/article/details/123935212</guid><author>daokoi</author><pubDate>Sun, 03 Apr 2022 12:02:41 +0800</pubDate><description><![CDATA[题目：
给定两个大小分别为 m 和 n 的正序（从小到大）数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。
算法的时间复杂度应该为 O(log (m+n)) 。
解题笔记：
（记录的是B站UP主甩手掌柜凡三岁的视频学习笔记）

代码：
package suanfa;

import com.sun.media.sound.RIFFInvalidDataException;

/*
*4.给定两个大小分别为 m 和 n 的正序（从小到大）数组 nums1 和 nums2。请你找出并]]></description><category></category></item><item><title><![CDATA[商品服务2-三级分类-配置网关路由与路径重写]]></title><link>https://blog.youkuaiyun.com/daokoi/article/details/123782365</link><guid>https://blog.youkuaiyun.com/daokoi/article/details/123782365</guid><author>daokoi</author><pubDate>Sun, 27 Mar 2022 23:24:53 +0800</pubDate><description><![CDATA[第一步：启动人人快速开发的前后端，登录进去之后在菜单管理中新增商品系统以及其下的分类维护，然后参照系统原有的角色管理来写商品系统的分类维护页面。


第二步：（1）在src&gt;views&gt;modules下创建一个product文件夹，再在这个product文件夹下创建一个category.vue文件（这些操作是参考角色管理来弄的）。（2）在element UI上找到Tree树形控件，将里面的代码复制到category.vue文件中对应的位置，然后保存前端代码可以看到页面的展示效果。



第三步：]]></description><category></category></item><item><title><![CDATA[商品服务1-三级分类-查询-递归树形结构数据获取]]></title><link>https://blog.youkuaiyun.com/daokoi/article/details/123780921</link><guid>https://blog.youkuaiyun.com/daokoi/article/details/123780921</guid><author>daokoi</author><pubDate>Sun, 27 Mar 2022 21:13:10 +0800</pubDate><description><![CDATA[三级分类的页面形式举例。

第一步：在表pms_category中存入三级分类的所有数据。

第二步：向后端发送product/category/list/tree请求时，调用listWithTree()方法将三级分类的所有数据都组装成树形结构进行返回。

第三步：CategoryService中还没有listWithTree()方法，需要在这里先声明一下此方法，然后再去实现类中实现此方法。

第四步：在实现类实现listWithTree()方法时，首先要注入对应的dao，传统方法是用注解@Autowire]]></description><category></category></item><item><title><![CDATA[vue学习：一个新创建项目的目录介绍]]></title><link>https://blog.youkuaiyun.com/daokoi/article/details/123752340</link><guid>https://blog.youkuaiyun.com/daokoi/article/details/123752340</guid><author>daokoi</author><pubDate>Sat, 26 Mar 2022 12:45:00 +0800</pubDate><description><![CDATA[一个新创建项目的目录介绍
build文件夹：存放打包工具webpack有关的代码。
config文件夹：存放配置信息。
node_modules文件夹：存放当前项目安装的所有依赖。
src文件夹：编写代码的地方。
main.js：主程序
static文件夹：存放静态资源文件，比如图片和字体文件等。
index.html：首页，主入口页面。
package.json：npm依赖包的一些配置信息。
package-lock.json：存放每个依赖的详细信息。

index.html：首页，主入口页面。

mai]]></description><category></category></item><item><title><![CDATA[vue学习：生命周期钩子函数]]></title><link>https://blog.youkuaiyun.com/daokoi/article/details/123750176</link><guid>https://blog.youkuaiyun.com/daokoi/article/details/123750176</guid><author>daokoi</author><pubDate>Sat, 26 Mar 2022 09:02:49 +0800</pubDate><description><![CDATA[生命周期钩子函数
代码如下：
&lt;div id="app"&gt;
    &lt;span id="num"&gt;{{num}}&lt;/span&gt;
    &lt;button @click="num++"&gt;赞！&lt;/button&gt;
    &lt;h2&gt;{{name}}，有{{num}}个人点赞&lt;/h2&gt;
&lt;/div&gt;
&lt;script src="../node_modules/vue/dist/vue.js"&gt;&lt;/script]]></description><category></category></item><item><title><![CDATA[vue学习：单向绑定(v-bind)和双向绑定(v-model)]]></title><link>https://blog.youkuaiyun.com/daokoi/article/details/123706442</link><guid>https://blog.youkuaiyun.com/daokoi/article/details/123706442</guid><author>daokoi</author><pubDate>Thu, 24 Mar 2022 11:37:56 +0800</pubDate><description><![CDATA[单向绑定和双向绑定*

单向绑定
v-html、v-text、插值表达式{{}}、v-bind都是单向绑定，即数据改变，页面元素也会跟着改变；而页面元素改变时，数据并不会跟着变。
v-bind是对html标签的属性进行绑定，其缩写为冒号（:）,例如：(v-bind:href)可以写为(:href)。
以v-bind为例来说明单向绑定：

&lt;!-- 给html标签的属性绑定 --&gt;
&lt;div id="app"&gt;
    &lt;a v-bind:href="link"&gt;ogogo]]></description><category></category></item><item><title><![CDATA[vue学习：v-html和v-text]]></title><link>https://blog.youkuaiyun.com/daokoi/article/details/123704227</link><guid>https://blog.youkuaiyun.com/daokoi/article/details/123704227</guid><author>daokoi</author><pubDate>Thu, 24 Mar 2022 10:21:42 +0800</pubDate><description><![CDATA[vue学习：v-html和v-text
两者的区别可从如下代码中看出：
&lt;div id="app"&gt;
    &lt;!-- {{}}这种是插值表达式，是给标签体里绑定表达式 --&gt;
    {{msg}}&lt;br/&gt;
    &lt;span v-html="msg"&gt;&lt;/span&gt;
    &lt;br/&gt;
    &lt;span v-text="msg"&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;script src=".]]></description><category></category></item><item><title><![CDATA[vue学习：组件化]]></title><link>https://blog.youkuaiyun.com/daokoi/article/details/123703338</link><guid>https://blog.youkuaiyun.com/daokoi/article/details/123703338</guid><author>daokoi</author><pubDate>Thu, 24 Mar 2022 09:54:47 +0800</pubDate><description><![CDATA[vue学习：组件化
把公共代码抽离出来声明成一个组件可以重复利用，有全局声明一个组件和局部声明一个组件，都在如下代码中写明了：
&lt;div id="app"&gt;
    &lt;button @click="count++"&gt;我被点击了{{count}}次&lt;/button&gt;
    &lt;quanjuzujian&gt;&lt;/quanjuzujian&gt;
    &lt;jubuzujian&gt;&lt;/jubuzujian&gt;

&lt;/div&gt;

&l]]></description><category></category></item><item><title><![CDATA[vue学习：计算属性computed,侦听器watch，过滤器filters]]></title><link>https://blog.youkuaiyun.com/daokoi/article/details/123698110</link><guid>https://blog.youkuaiyun.com/daokoi/article/details/123698110</guid><author>daokoi</author><pubDate>Wed, 23 Mar 2022 22:25:47 +0800</pubDate><description><![CDATA[vue学习：计算属性computed,侦听器watch，过滤器filters

computed和watch
computed用来计算总价，watch用来控制库存数量不能超过3：

&lt;div id="app"&gt;
    &lt;ul&gt;
        &lt;li&gt;西游记；价格：{{xyjPrice}}，数量:&lt;input type="number" v-model="xyjNumber"&gt;&lt;/li&gt;
        &lt;li&gt;水浒传；价格：{{sh]]></description><category></category></item></channel></rss>