<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Z___R的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Z___R</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Z___R]]></copyright><item><title><![CDATA[查找字符串中第一个唯一的字符]]></title><link>https://blog.youkuaiyun.com/Z___R/article/details/111573629</link><guid>https://blog.youkuaiyun.com/Z___R/article/details/111573629</guid><author>Z___R</author><pubDate>Wed, 23 Dec 2020 10:32:14 +0800</pubDate><description><![CDATA[给定一个字符串，找到它的第一个不重复的字符，并返回它的索引。如果不存在，则返回 -1。
通过hash 和map
/**
 * @param {string} s
 * @return {number}
 */
var firstUniqChar = function(s) {
    let map = new Map();
    let hash = {};  //记录字符串 
    for(let i =0; i&lt;s.length;i++){
        if(!hash[s[i]]){
]]></description><category></category></item><item><title><![CDATA[最小爬楼梯]]></title><link>https://blog.youkuaiyun.com/Z___R/article/details/111475638</link><guid>https://blog.youkuaiyun.com/Z___R/article/details/111475638</guid><author>Z___R</author><pubDate>Mon, 21 Dec 2020 15:15:16 +0800</pubDate><description><![CDATA[数组的每个索引作为一个阶梯，第&nbsp;i个阶梯对应着一个非负数的体力花费值&nbsp;costi。
每当你爬上一个阶梯你都要花费对应的体力花费值，然后你可以选择继续爬一个阶梯或者爬两个阶梯。
您需要找到达到楼层顶部的最低花费。在开始时，你可以选择从索引为 0 或 1 的元素作为初始阶梯。
来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/min-cost-climbing-stairs
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出]]></description><category></category></item><item><title><![CDATA[数组中重复的数字  for和for of的效率比较]]></title><link>https://blog.youkuaiyun.com/Z___R/article/details/111315024</link><guid>https://blog.youkuaiyun.com/Z___R/article/details/111315024</guid><author>Z___R</author><pubDate>Thu, 17 Dec 2020 14:45:32 +0800</pubDate><description><![CDATA[在一个长度为 n 的数组 nums 里的所有数字都在 0～n-1 的范围内。数组中某些数字是重复的，但不知道有几个数字重复了，也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
题解
通过解题 for of 的效率没有for 的效率高
/**
 * @p]]></description><category></category></item><item><title><![CDATA[2020-12-04 最长无重复子串长度]]></title><link>https://blog.youkuaiyun.com/Z___R/article/details/110652964</link><guid>https://blog.youkuaiyun.com/Z___R/article/details/110652964</guid><author>Z___R</author><pubDate>Fri, 04 Dec 2020 17:14:24 +0800</pubDate><description><![CDATA[给定一个数组arr，返回arr的最长无的重复子串的长度(无重复指的是所有数字都不相同)。
遍历数组，将不重复的数组通过map 记录数值和下标，当重复时候，比较max（最长无重复长度）与map 的长度，取最大值，将index 重新定位到出现重复数字的下一位
/**
 * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
 * 
 * @param arr int整型一维数组 the array
 * @return int整型
 */
export function maxLength]]></description><category></category></item><item><title><![CDATA[等高、双飞翼、圣杯、flex实现中间自适应、两边固定的布局]]></title><link>https://blog.youkuaiyun.com/Z___R/article/details/110522151</link><guid>https://blog.youkuaiyun.com/Z___R/article/details/110522151</guid><author>Z___R</author><pubDate>Thu, 03 Dec 2020 10:41:47 +0800</pubDate><description><![CDATA[等高布局
通过margin 和padding实现
父盒子设置溢出隐藏
子盒子 设置元素为float , 设置margin-bottom 为-2000px  (为负值，此时父元素不撑开) 设置padding-bottom 的值为2000px，相抵，当改盒子的里面东西添加时候，父盒子就会撑开，同时，所有的子盒子溢出的部分也会显示，出现等高效果
&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
  &lt;meta charset="UTF-8"&]]></description><category></category></item><item><title><![CDATA[2020-12-03  原型问题和New对象问题]]></title><link>https://blog.youkuaiyun.com/Z___R/article/details/110517340</link><guid>https://blog.youkuaiyun.com/Z___R/article/details/110517340</guid><author>Z___R</author><pubDate>Thu, 03 Dec 2020 08:36:11 +0800</pubDate><description><![CDATA[var F=function(){};
Object.prototype.a=function(){};
Function.prototype .b=function(){};
var f=new F();
结果
f 取得到a ,但是得不到b
因为F() 是一个函数，继承了 Function的原型，可以取到b,
但是new F() 返回的是一个对象，只能继承Object 的原型

...]]></description><category></category></item><item><title><![CDATA[typescript   数据类型整理]]></title><link>https://blog.youkuaiyun.com/Z___R/article/details/110481168</link><guid>https://blog.youkuaiyun.com/Z___R/article/details/110481168</guid><author>Z___R</author><pubDate>Wed, 02 Dec 2020 14:39:56 +0800</pubDate><description><![CDATA[布尔值
boolean
let isDone: boolean = false;

数字
number  支持十进制、十六进制、二进制、八进制
let decLiteral: number = 6;
let hexLiteral: number = 0xf00d;
let binaryLiteral: number = 0b1010;
let octalLiteral: number = 0o744;

字符串
string
和其他语言相似
可以使用模板字符串、用反引号包围`` 可以使用${} 嵌入表达式
]]></description><category></category></item><item><title><![CDATA[2020-12-02 数组原地去重]]></title><link>https://blog.youkuaiyun.com/Z___R/article/details/110468727</link><guid>https://blog.youkuaiyun.com/Z___R/article/details/110468727</guid><author>Z___R</author><pubDate>Wed, 02 Dec 2020 09:43:47 +0800</pubDate><description><![CDATA[给定一个排序数组，你需要在 原地 删除重复出现的元素，使得每个元素只出现一次，返回移除后数组的新长度。
不要使用额外的数组空间，你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
通过双指针操作，将不重复的数组移动到前面
/**
 * @par]]></description><category></category></item><item><title><![CDATA[2020-12-1 二分查找]]></title><link>https://blog.youkuaiyun.com/Z___R/article/details/110420673</link><guid>https://blog.youkuaiyun.com/Z___R/article/details/110420673</guid><author>Z___R</author><pubDate>Tue, 01 Dec 2020 09:06:19 +0800</pubDate><description><![CDATA[请实现有重复数字的有序数组的二分查找。
输出在数组中第一个大于等于查找值的位置，如果数组中不存在这样的数，则输出数组长度加一。
注意： 短路
public class Solution {
    /**
     * 二分查找
     * @param n int整型 数组长度
     * @param v int整型 查找值
     * @param a int整型一维数组 有序数组
     * @return int整型
     */
    public int upper_bound_ ]]></description><category></category></item><item><title><![CDATA[HTML5   CSS3  知识总结]]></title><link>https://blog.youkuaiyun.com/Z___R/article/details/110387107</link><guid>https://blog.youkuaiyun.com/Z___R/article/details/110387107</guid><author>Z___R</author><pubDate>Mon, 30 Nov 2020 14:08:33 +0800</pubDate><description><![CDATA[HTML 与XHTML的区别
1、DOCTYPE文档与编码
2、大小写 XHTML不允许大写标签
3、单标签要加结束  HTML    但是在XHTML中必须有
4、属性值必须加引号
5、属性布尔值，在HTML中可以true可以直接写名字，但是在XHTML中不可以
​	如checked  = “checked”    在HTML可以直接写checked
6、图片中在XHTML中必须加  alt=“   ”
strong和 b 、em 和  i
表现形态，  文本加粗    和      文本倾斜
stron]]></description><category></category></item><item><title><![CDATA[ES6 部分知识箭头函数 promise]]></title><link>https://blog.youkuaiyun.com/Z___R/article/details/110387088</link><guid>https://blog.youkuaiyun.com/Z___R/article/details/110387088</guid><author>Z___R</author><pubDate>Mon, 30 Nov 2020 14:07:44 +0800</pubDate><description><![CDATA[ES6 部分知识
箭头函数
const ccc = () =&gt; {}
const sum = (num1,num2) =&gt; {return num1+num2}
const sum = num1 =&gt; { return num*num } //一个参数小括号可以省略
const mul = (num1,num2) =&gt; num1*num2; //之后一行代码值return可以省略，自动返回

箭头函数的this引用的最近的作用域中的this，向外层的作用域中，一层层查找this，直到]]></description><category></category></item><item><title><![CDATA[axios 全局配置 封装 拦截器]]></title><link>https://blog.youkuaiyun.com/Z___R/article/details/110387066</link><guid>https://blog.youkuaiyun.com/Z___R/article/details/110387066</guid><author>Z___R</author><pubDate>Mon, 30 Nov 2020 14:06:57 +0800</pubDate><description><![CDATA[axios
npm i axios --save
axios({
  url: 'http://localhost:3000/dj/program?rid=336355127',
  method: 'get'
}).then(res =&gt; {
  console.log(res);
})

axios({
  url: 'http://localhost:3000/search',
  // 专门针对get请求的参数拼接
  params:{
    keywords: '海阔天空'
  },
  ]]></description><category></category></item><item><title><![CDATA[Vuex  状态管理模式  单页面、多页面]]></title><link>https://blog.youkuaiyun.com/Z___R/article/details/110387034</link><guid>https://blog.youkuaiyun.com/Z___R/article/details/110387034</guid><author>Z___R</author><pubDate>Mon, 30 Nov 2020 14:05:37 +0800</pubDate><description><![CDATA[Vuex  状态管理模式
采用集中式存储管理应用所有组件的状态，并以相应的规则保证状态以一种可预测的方式发生变化
多个组件共享的变量全部存储在一个对象里面
放在顶层的Vue实例中，其他组件可以使用
管理什么状态
用户的登录状态、用户的名称、用户的头像、地理位置
商品的收藏、购物车的物品
单界面状态管理
state: 就是状态，（可以当做data中的属性）
View ： 视图层，可以针对State 的变化，显示不同的信息
Actions:  这里面是用户的个中操作，点击，出入等，会导致状态的改变
#merma]]></description><category></category></item><item><title><![CDATA[vue-router 动态路由  懒加载 导航守卫]]></title><link>https://blog.youkuaiyun.com/Z___R/article/details/110386910</link><guid>https://blog.youkuaiyun.com/Z___R/article/details/110386910</guid><author>Z___R</author><pubDate>Mon, 30 Nov 2020 14:02:23 +0800</pubDate><description><![CDATA[图片显示不出来见相应的补充中
路由
路由：通过互联网把信息从原地址传输到目的地址的活动   — 维基百科
前端渲染、后端渲染
早期 整个HTML页面是由服务器来渲染的
jsp: java server page
图见：路由  补充图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8aD7RHmr-1606716128749)(C:\Users\ZR\AppData\Roaming\Typora\typora-user-images\image-2020112314113955]]></description><category></category></item><item><title><![CDATA[插槽 slot  具名插槽 作用域插槽]]></title><link>https://blog.youkuaiyun.com/Z___R/article/details/110386840</link><guid>https://blog.youkuaiyun.com/Z___R/article/details/110386840</guid><author>Z___R</author><pubDate>Mon, 30 Nov 2020 14:00:18 +0800</pubDate><description><![CDATA[插槽 slot
组件的插槽让封装好的组件更具扩展性
让使用则可以决定组件内部的一些内容到底展示什么
例如： 每个页面都有导航栏，则封装成一个插件，可以在多个页面中复用
抽取共有的
可以为插槽设置默认值
slot 在组件中开辟一块可替换的位置，当父组件使用组件标签时候，将标签里面的标签替换掉组件中的slot中的标签
&lt;div id="app"&gt;
  &lt;cpn&gt; &lt;button&gt;anjiu&lt;/button&gt;&lt;/cpn&gt;
  &lt;cpn&gt;
  ]]></description><category></category></item><item><title><![CDATA[webpack 打包]]></title><link>https://blog.youkuaiyun.com/Z___R/article/details/110386803</link><guid>https://blog.youkuaiyun.com/Z___R/article/details/110386803</guid><author>Z___R</author><pubDate>Mon, 30 Nov 2020 13:59:16 +0800</pubDate><description><![CDATA[注意：webpack配置过程中,版本过新会出现问题，所以注意版本 
webpack
webpack 是现代的javascript应用的静态模块打包工具
模块打包
生成浏览器可以识别的文件
前端模块化：ES6 浏览器可以识别
commonJS AMD CMD不能识别，通过webpack 可以打包处理成浏览器可以识别的代码
并且能处理模块间的依赖关系
把CSS、图片、json 文件都可以当做模块来使用
grunt/gulp 核心是Task   前端自动化任务管理工具
没有用到模块化工具，强调前端流程的自动化
w]]></description><category></category></item><item><title><![CDATA[CommonJS  ES6  模块化开发]]></title><link>https://blog.youkuaiyun.com/Z___R/article/details/110386737</link><guid>https://blog.youkuaiyun.com/Z___R/article/details/110386737</guid><author>Z___R</author><pubDate>Mon, 30 Nov 2020 13:57:39 +0800</pubDate><description><![CDATA[模块化开发
早期通过创建对象，返回模块的出口
var moduleA =  (function () {
  var obj={};
  obj.flag = true;
  obj.myFunc = function (info) {
    console.log(info);
  }
  return obj;

})();
//使用
if(moduleA.flag){
  console.log("sdsds");
}
moduleA.myFunc("sdsd");

CommonJS、 AMD、C]]></description><category></category></item><item><title><![CDATA[Vue组件 组件之间的传递]]></title><link>https://blog.youkuaiyun.com/Z___R/article/details/110386692</link><guid>https://blog.youkuaiyun.com/Z___R/article/details/110386692</guid><author>Z___R</author><pubDate>Mon, 30 Nov 2020 13:56:50 +0800</pubDate><description><![CDATA[父传子
props
驼峰问题：props 对象名使用驼峰式的是时候，在父组件绑定时候，v-bind: 不支持驼峰式
例如cMmoves  不可以要使用c-mmoves
&lt;div id="app"&gt;
  &lt;cpn :cmmoves="movies" :cmessage="message"&gt;&lt;/cpn&gt; 
//cMmoves 驼峰式的时候    要使用c-mmoves ，不能直接使用cMmoves
&lt;/div&gt;
&lt;template id="cpn1"&gt;]]></description><category></category></item><item><title><![CDATA[二进制实现加法]]></title><link>https://blog.youkuaiyun.com/Z___R/article/details/110367699</link><guid>https://blog.youkuaiyun.com/Z___R/article/details/110367699</guid><author>Z___R</author><pubDate>Mon, 30 Nov 2020 09:31:18 +0800</pubDate><description><![CDATA[写一个函数，求两个整数之和，要求在函数体内不得使用+、-、*、/四则运算符号。
通过二进制解决
一般加减法通过异或^解决
但是进位未出现问题
通过&amp; 情况判断是否进位，1&amp;1 = 1  所以想左移动一位
public class Solution {
    public int Add(int num1,int num2) {
        int result = 0;
        int result1= 0;
        do {
            result = ]]></description><category></category></item><item><title><![CDATA[2020-11-17判断链表是否有环]]></title><link>https://blog.youkuaiyun.com/Z___R/article/details/109744155</link><guid>https://blog.youkuaiyun.com/Z___R/article/details/109744155</guid><author>Z___R</author><pubDate>Tue, 17 Nov 2020 15:34:45 +0800</pubDate><description><![CDATA[题目描述
判断给定的链表中是否有环
如果有环，则跑的快的指针一定等追上跑的慢的指针，就是跑一圈之后追赶上慢的
public class Solution {
    public boolean hasCycle(ListNode head) {
        if(head == null){
            return false;
        }
        
        ListNode fast = head;
        ListNode slow = head;
 ]]></description><category></category></item></channel></rss>