美文网首页让前端飞Web 前端开发
每天一个js小算法(日更 21天) - V 2.0

每天一个js小算法(日更 21天) - V 2.0

作者: zz77zz | 来源:发表于2018-07-30 12:33 被阅读10次

    这是Verse 2 第一篇在每天一个js小算法(日更 21天) 是FCC的基础算法部分 这篇则是进阶算法 有点难度估计会花点时间

    没有看第一篇的同学(吃瓜不明真相的群众) 可以点进去观看(链接如上) 如果懒 我再把它在贴出来

    开始找有没有可以学习或者练习基本算法的学习平台或者课程
    有很多推荐的我就例举几个 其他的请各位自行百度

    首选 其他
    - CodeWar codewar - Leecode Leecode很多大神都用这个去刷题 我只是听说但从未刷过一道题
    - FCC freecodecamp - 考研的同学刷机试题 牛客 求职的同学还可以刷面试题 很牛皮

    有哪些学习算法的网站推荐?
    另外看到了其他几个听说超级有用不知真假
    geeksforgeeks
    一个小学生的算法竞赛题库
    Lintcode 这个我逛了逛也可以的
    看了以上几个网站以及回答 我选择了之前写过一些东西的FCC 因为都是基础的 也不想一步登天且这种白日梦不存在的 so 脚踏实地的开始

    规则如下:

    1. 如果当天不完成或者各种理由推拖了 次日补
    2. 不能找答案(原则性问题不得触犯) 没能做出来或实现时间影响了日常工作 作为标记跳过 以后再来刷
    3. 解决思路+代码注释
      if 但凡是触犯了以上任意规则 自动退出 不在更新 发朋友圈一张自己最丑的图且截图放到此Blog (女人...不对...男人就要对自己狠一点)

    不求数量 但求质量

    为了以后写代码顺畅些 没别的愿景 因为一旦卡住我脑子就会陷入一种很难描述的情况
    抓狂+1000个黑人问号脸 => 百度 => change code =>百度 的死循环
    每次都是到了第二天脑子顺畅的时候一会儿就实现了 这种现象我表示很迷

    7月30日

    12:13:42 早晨一直看书(js语言精粹)到刚刚 因为今天老板不在 一刻不停歇的看书 就担心他回来开会 又是一堆需求没办法学习了(这样说是不是太装逼 会被打) 书上知识点同时我会更新到另一篇blog js语言精粹 正在看刚到一半儿

    1. 实现两个数字之间所有数字的和
      Sum All Numbers in a Range
    function factorialize(num) {
      if (num < 0) { 
            return -1; 
        } else if (num === 0 || num === 1) { 
            return 1; 
        } else { 
            return (num * factorialize(num - 1)); 
        } 
    }
    
    /*公式方法*/
    function sumAll(arr) {
      return (arr[0] + arr[1])*(Math.abs(arr[0] - arr[1]) + 1)/2;      (a+b)×(b-a+1)÷2
    }
    

    讲道理还是数学公式好事,但是用reduce()方法没做 对 就是因为懒

    1. 两个数组做差 python直接一个方法就搞定了
      indexOf() slice() concat() filter()
      Diff Two Arrays
    function diff(arr1, arr2) {
      return arr1.filter(function(v){
        return arr2.indexOf(v)==-1;
      }).concat(arr2.filter(function(v){
        return arr1.indexOf(v)==-1;
      }));  
    }
    
    diff([1, 2, 3, 5], [1, 2, 3, 4, 5]); 
    

    还有一个麻烦一定的办法 将传的参数分别在做个循环然后塞进一个数组 并返回 其实一个道理 所以我觉得数组这些方法的底层实现跟我这个方法类似 所以 找找每个Array的方法底层实现源码

    1. 数字转换成罗马数字 这个先放一放 等有思路了在来
      indexOf() splice() join()
      Roman Numeral Converter
    
    
    1. **** 这个没看懂 我.....
      indexOf() splice() join()
      Where art thou
    
    
    1. 替换字符串中指定字符 看参数 即可明白 终于有一个能做了🤔🤔🤔🤔🤔🤔🤔🤔🤔🤔
      replace() splice() join()
      Search and Replace
    function myReplace(str,before,after){ 
      if(before[0] === before[0].toUpperCase()){ 
        after = after[0].toUpperCase() + after.slice(1); 
      } 
      str = str.replace(before,after);
      return str; 
    }
    myReplace("A quick brown fox jumped over the lazy dog", "jumped", "leaped");
    

    这个是最容易想到的 也有别的思路 但是我今天得早点回家 交房租~~~ F**K!!!

    7月31日

    09:18:30
    昨天下班时间看了你有多久没更新过简历了? 很有感触 万一自己以后想跳槽去好一点的公司不再小公司厮混自己单挑独斗 简历必然是重要的 脑子里一直回想要不刷个面试题?要不写个刷面试题的Blog? 算了,一个一个来太急反而适得其反 把眼前的stuff写完然后在bb or yy

    1. 把指定的字符串翻译成 pig latin 直到找到第一个元音 把第一个原因之前的str 截取并拼接到最后 str的第一个字符就是元音 str+"way" 这道题我竟然花了30分钟 花了两种方法 这个简便一些也看着更顺
      另一种是我把str分成数组去做的有一点点麻烦
      indexOf() split() join() push()
      Pig Latin
    function translate(str) {
     var _yuan = ["a","e","i","o","u"];
      if(_yuan.indexOf(str[0]) >= 0){ 
        return str + "way"; 
      } 
      while(_yuan.indexOf(str[0]) < 0){ 
        str = str.substr(1) + str.substr(0,1); 
      } 
      return str + "ay";
    
    }
    
    translate("california");
    
    // 2. 未完成~~~
    function translate(str) {
      var _yuan = ['a','e','i','o','u']
      var new_arr = str.split("")
      var ae = []
      new_arr.forEach((item)=>{ 
        if(_yuan.indexOf(item)!==-1){
          ae.push(item)
        }
      })
    console.log(new_arr.join("").substr(new_arr.indexOf(ae[0]))+"ay")
    }
    
    translate("california");
    

    8月1日

    09:57:40
    1.字母序列中找到缺失的字母并返回它,如果所有字母都在序列中,返回 undefined
    遍历字符串,如果前一个字符的ASCII码不是后一个字符ASCII码+1,就判断为丢失字符,返回丢失的字符。
    丢失的字符只能通过ASCII码的转换来获得。
    charCodeAt() | fromCharCode()
    Missing letters

    function fearNotLetter(str) {
       for(var i=0,len=str.length;i<len;i++){
       var _tag= str.charCodeAt(i+1)-str.charCodeAt(i);
       if(_tag>1){
         return String.fromCharCode(str.charCodeAt(i)+1);
       }
     }
      return undefined;
    }
    
    fearNotLetter("abce");
    

    今天就忙着新项目搭建和规划 基本没时间写 又来了一个项目 小程序的在线教育 双语的~~~又开始写小程序了

    8-2 21:43

    **现在人在深圳 老板带我一起来谈个项目 才拿到手机 手机码字太辛苦 早上突然要求我穿干净的衣服来 我呵呵了 平时不干净? 明天回去补…… **

    相关文章

      网友评论

        本文标题:每天一个js小算法(日更 21天) - V 2.0

        本文链接:https://www.haomeiwen.com/subject/gftfvftx.html