<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[caiyyu的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/caiyyu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; caiyyu]]></copyright><item><title><![CDATA[正整数数组排列成最小的数字]]></title><link>https://blog.youkuaiyun.com/caiyyu/article/details/106045740</link><guid>https://blog.youkuaiyun.com/caiyyu/article/details/106045740</guid><author>caiyyu</author><pubDate>Mon, 11 May 2020 00:36:50 +0800</pubDate><description><![CDATA[题目：输入一个正整数数组，将所有元素排列成最小的数字后输出
function PrintMinNumber(numbers)
{
if(numbers.length==0) return false;
else{
var str=numbers+’’;
var arr=str.split(’,’);
arr.sort((a,b)=&gt;{
return (a+b)-(b+a);
})
return parseInt(arr.join(’’));
}
}
console.log(PrintMinNumber]]></description><category></category></item><item><title><![CDATA[长数组拆分成和最接近的两个数组]]></title><link>https://blog.youkuaiyun.com/caiyyu/article/details/106025654</link><guid>https://blog.youkuaiyun.com/caiyyu/article/details/106025654</guid><author>caiyyu</author><pubDate>Sat, 09 May 2020 18:37:14 +0800</pubDate><description><![CDATA[题目：输入一个大数组拆分成和最接近的两个数组，并返回。
const arr = [1,23,544,64,47,56,12,456,32,12,132];
        function twoArrSum(arr){
            var arr1=[],arr2=[];
            var sum1=0,sum2=0;
            arr.sort((a,b)=&gt;b-a);               //必须从大到小排序。因为大数不需先保证分配正确，小数可不分]]></description><category></category></item><item><title><![CDATA[浅谈 setState 更新机制]]></title><link>https://blog.youkuaiyun.com/caiyyu/article/details/105929782</link><guid>https://blog.youkuaiyun.com/caiyyu/article/details/105929782</guid><author>caiyyu</author><pubDate>Tue, 05 May 2020 11:26:37 +0800</pubDate><description><![CDATA[了解 React 同学想必对setState函数是再熟悉不过了，setState也会经常作为面试题，考察前端求职者对 React 的熟悉程度。
在此我也抛一个问题，阅读文章前读者可以先想一下这个问题的答案。
给 React 组件的状态每次设置相同的值，如setState({count: 1})。React 组件是否会发生渲染？如果是，为什么？如果不是，那又为什么？
一、场景复现
针对上述问题，先进...]]></description><category></category></item><item><title><![CDATA[算术字符串输出运算结果]]></title><link>https://blog.youkuaiyun.com/caiyyu/article/details/105694754</link><guid>https://blog.youkuaiyun.com/caiyyu/article/details/105694754</guid><author>caiyyu</author><pubDate>Wed, 22 Apr 2020 22:21:32 +0800</pubDate><description><![CDATA[题目：
给定一个字符串（内含一个运算表达式）输出运算结果（整数）。
eg:输入：‘123+234-123+100=’
输出：334
var obj={
                '+':(a,b)=&gt;a+b,             //箭头运算符
                '-':(a,b)=&gt;a-b              //***
            }
  ...]]></description><category></category></item><item><title><![CDATA[数字转汉字]]></title><link>https://blog.youkuaiyun.com/caiyyu/article/details/105693662</link><guid>https://blog.youkuaiyun.com/caiyyu/article/details/105693662</guid><author>caiyyu</author><pubDate>Wed, 22 Apr 2020 21:41:25 +0800</pubDate><description><![CDATA[题目：
输入一个正数(整数),大小不超过千亿。输出字符串类型的汉字。
eg:输入：1001
输出：一千零一
function fn(n){
        if(!/^([1-9]\d*)/.test(n)){
            return '非法数据';
        }
        var unit = '千百十亿千百十万千百十个';
        if(n.length &g...]]></description><category></category></item><item><title><![CDATA[逆波兰表达式]]></title><link>https://blog.youkuaiyun.com/caiyyu/article/details/105693340</link><guid>https://blog.youkuaiyun.com/caiyyu/article/details/105693340</guid><author>caiyyu</author><pubDate>Wed, 22 Apr 2020 21:28:56 +0800</pubDate><description><![CDATA[题目：
给定一个字符串数组（包括数字和运算符），根据逆波兰表达式输出结果。
eg:输入：[“4”, “13”, “5”, “/”, “+”]
输出：(4 + (13 / 5)) = 6
var obj={
           '+':(a,b)=&gt;a+b,
           '-':(a,b)=&gt;a-b,
           '*':(a,b)=&gt;a*b,
       ...]]></description><category></category></item><item><title><![CDATA[树的子结构]]></title><link>https://blog.youkuaiyun.com/caiyyu/article/details/105610426</link><guid>https://blog.youkuaiyun.com/caiyyu/article/details/105610426</guid><author>caiyyu</author><pubDate>Sun, 19 Apr 2020 09:50:22 +0800</pubDate><description><![CDATA[题目描述：
输入两棵二叉树A，B，判断B是不是A的子结构。（ps：我们约定空树不是任意一个树的子结构）
function HasSubtree(pRoot1, pRoot2)
            {
  
                    //自身，左子树，右子树只要一个符合即为子结构
                    if(pRoot1==null||pRoot2==null){...]]></description><category></category></item><item><title><![CDATA[从上到下从左到右打印二叉树]]></title><link>https://blog.youkuaiyun.com/caiyyu/article/details/105471737</link><guid>https://blog.youkuaiyun.com/caiyyu/article/details/105471737</guid><author>caiyyu</author><pubDate>Sun, 12 Apr 2020 16:44:40 +0800</pubDate><description><![CDATA[从上到下从左到右打印二叉树:
function PrintFromTopToBottom(root){
            var arr=[];
            var res=[];			//结果数组
            if(root){
                arr.push(root);
            }
            while(arr.l...]]></description><category></category></item><item><title><![CDATA[call，apply和bind的内部实现]]></title><link>https://blog.youkuaiyun.com/caiyyu/article/details/105355376</link><guid>https://blog.youkuaiyun.com/caiyyu/article/details/105355376</guid><author>caiyyu</author><pubDate>Tue, 07 Apr 2020 00:38:03 +0800</pubDate><description><![CDATA[call
函数都可以调用call，apply，bind方法，所以函数方法要写在原型上
        Function.prototype.ca_ll=function(){
            let [thisArg,...arg]=arguments;
            //thisArg=window;
            thisArg.func=this;
       ...]]></description><category></category></item><item><title><![CDATA[根据对象数组的属性排序]]></title><link>https://blog.youkuaiyun.com/caiyyu/article/details/105336978</link><guid>https://blog.youkuaiyun.com/caiyyu/article/details/105336978</guid><author>caiyyu</author><pubDate>Mon, 06 Apr 2020 00:19:21 +0800</pubDate><description><![CDATA[一个由对象构成的数组，参数为所有对象共有的属性，输出排序结果
&lt;script&gt;
        let a = [
        {
            id: 12,
            name: 'zhangsan'
        },
        {
            id: 20,
            name: 'lisa'
        },
...]]></description><category></category></item><item><title><![CDATA[反转链表后输出新表头]]></title><link>https://blog.youkuaiyun.com/caiyyu/article/details/105320828</link><guid>https://blog.youkuaiyun.com/caiyyu/article/details/105320828</guid><author>caiyyu</author><pubDate>Sun, 05 Apr 2020 00:17:25 +0800</pubDate><description><![CDATA[输入一个链表，反转链表后，输出新链表的表头。
function ReverseList(pHead)             
            {
                // write code here
                    var zhang=[];
                    var res=[];
                    v...]]></description><category></category></item><item><title><![CDATA[链表反序（不借助额外空间）]]></title><link>https://blog.youkuaiyun.com/caiyyu/article/details/105304714</link><guid>https://blog.youkuaiyun.com/caiyyu/article/details/105304714</guid><author>caiyyu</author><pubDate>Sat, 04 Apr 2020 00:55:45 +0800</pubDate><description><![CDATA[构造链表结构，反序输出链表
构造链表结构：
 class Node{
            constructor(val){
                this.val=val;
                this.next=undefined;
            }
        }

        class lianbiao{
            constru...]]></description><category></category></item><item><title><![CDATA[节流和防抖]]></title><link>https://blog.youkuaiyun.com/caiyyu/article/details/105283605</link><guid>https://blog.youkuaiyun.com/caiyyu/article/details/105283605</guid><author>caiyyu</author><pubDate>Fri, 03 Apr 2020 00:49:31 +0800</pubDate><description><![CDATA[函数防抖:是指频繁触发的情况下，只有足够的空闲时间，才执行代码一次。比如生活中的坐公交，就是一定时间内，如果有人陆续刷卡上车，司机就不会开车。只有别人没刷卡了，司机才开车。
 function jie(fn,timer){
               var startTime=0;
               return function(){
                    va...]]></description><category></category></item><item><title><![CDATA[红绿灯效果（Promise）]]></title><link>https://blog.youkuaiyun.com/caiyyu/article/details/105260190</link><guid>https://blog.youkuaiyun.com/caiyyu/article/details/105260190</guid><author>caiyyu</author><pubDate>Thu, 02 Apr 2020 01:03:25 +0800</pubDate><description><![CDATA[题目：红灯三秒亮一次，绿灯一秒亮一次，黄灯2秒亮一次；如何让三个灯不断交替重复亮灯？（用Promse实现）
&lt;style&gt;
        #l{
            width: 100px;
            height: 100px;
             /* background-color: blueviolet; */
            border...]]></description><category></category></item><item><title><![CDATA[数据结构中常见的查找算法]]></title><link>https://blog.youkuaiyun.com/caiyyu/article/details/105247952</link><guid>https://blog.youkuaiyun.com/caiyyu/article/details/105247952</guid><author>caiyyu</author><pubDate>Wed, 01 Apr 2020 15:56:51 +0800</pubDate><description><![CDATA[常见的查找算法即七大查找算法：
一：顺序查找
二：二分查找
三：插值查找
四：费波那西查找
五：数表查找
六：分块查找
七：哈希查找
以二分查找为例：
 &lt;script&gt;
        var arr=[1,2,3,4,5,6,7,8,9,10];
        function twoFind(arr,item,start,end){
            if(item&gt...]]></description><category></category></item><item><title><![CDATA[实现类似getElementsByClassName]]></title><link>https://blog.youkuaiyun.com/caiyyu/article/details/105212861</link><guid>https://blog.youkuaiyun.com/caiyyu/article/details/105212861</guid><author>caiyyu</author><pubDate>Tue, 31 Mar 2020 00:25:13 +0800</pubDate><description><![CDATA[&lt;div class="temp"&gt;11111&lt;/div&gt;
    &lt;div class="temp aa"&gt;22222&lt;/div&gt;
    &lt;div class="tempq aa"&gt;3333&lt;/div&gt;
    &lt;div class="bb temp"&gt;22222&lt;/div&gt;
    &lt;div...]]></description><category></category></item><item><title><![CDATA[前端面试：三数之和]]></title><link>https://blog.youkuaiyun.com/caiyyu/article/details/105188398</link><guid>https://blog.youkuaiyun.com/caiyyu/article/details/105188398</guid><author>caiyyu</author><pubDate>Sun, 29 Mar 2020 22:38:49 +0800</pubDate><description><![CDATA[题目：给出一个数组arr，返回一个二维数组，内部每个值都为三个数，且三数之和为0.
样例输入：[-1, 0, 1, 2, -1, -4]
样例输出：[[-1,0,1],[-1,2,-1]]
//排序+双指针

        function threeSum(arr){
            var res=[];
            if(arr.length&lt;3){
      ...]]></description><category></category></item><item><title><![CDATA[js引擎线程]]></title><link>https://blog.youkuaiyun.com/caiyyu/article/details/104979110</link><guid>https://blog.youkuaiyun.com/caiyyu/article/details/104979110</guid><author>caiyyu</author><pubDate>Thu, 19 Mar 2020 22:49:26 +0800</pubDate><description><![CDATA[浏览器包括4个进程：
主进程（Browser进程），浏览器只有一个主进程，负责资源下载，界面展示等主要基础功能
GPU进程，负责3D图示绘制
第三方插件进程，负责第三方插件处理
渲染进程（Renderer进程），负责js执行，页面渲染等功能，也是本章重点内容
渲染进程主要包括GUI渲染线程、Js引擎线程、事件循环线程、定时器线程、http异步线程。
JS引擎线程
js引擎线程就是js内核，负责解析...]]></description><category></category></item><item><title><![CDATA[定时器会按规定的时间执行吗]]></title><link>https://blog.youkuaiyun.com/caiyyu/article/details/104978923</link><guid>https://blog.youkuaiyun.com/caiyyu/article/details/104978923</guid><author>caiyyu</author><pubDate>Thu, 19 Mar 2020 22:40:01 +0800</pubDate><description><![CDATA[**	定时器是规定在一段时间之后执行一段代码，但是在js执行中不会准确无误的按照预期的时间去执行定时器里面的代码。
一个原因是W3C标准规定setTimeout中最小的时间周期是4毫秒，凡是低于4ms的时间间隔都按照4ms来处理。
其实还有一个重要的原因，如果仔细看上面的文章，大家应该会想到在js执行的时候，主线程碰到定时器的时候，是不会直接处理的，应该是先把定时器事件交给定时器线程去处理，这时主...]]></description><category></category></item><item><title><![CDATA[算法之数字序列中某一位的数字]]></title><link>https://blog.youkuaiyun.com/caiyyu/article/details/104912808</link><guid>https://blog.youkuaiyun.com/caiyyu/article/details/104912808</guid><author>caiyyu</author><pubDate>Tue, 17 Mar 2020 01:00:24 +0800</pubDate><description><![CDATA[题目： 一个字符串由0~n，顺序的数字拼接而成。eg：01234567891011.。。。从0开始。
输入0，返回0；输入10，返回1。
&lt;script&gt;
        function FindnThNum(n){
            var str='0123456789';
            if(n&lt;=9){
                return st...]]></description><category></category></item></channel></rss>