随笔分类 -  --算法恩仇--实战篇--

解题代码
摘要:--算法恩仇录--实战篇--力扣(LeetCode)--070-爬楼梯-- 这道题主要是思路得对。 思路 假如你要走5个阶梯,你的第一步有两种选择。 走一步,还剩4个阶梯 走两步,还剩3个阶梯 那么这就变成了 3 个阶梯加上 4个阶梯的情况。 答案就出来了~ f[n] = f[n-1] + f[n- 阅读全文
posted @ 2020-09-18 10:58 小虾米在code江湖 阅读(126) 评论(0) 推荐(0)
摘要:这道题直接递归模拟添加括号。 注意不要放置过多的右括号。右括号和左括号是一一对应的。 代码: /** * @param {number} n * @return {string[]} */ //使用递归 //每一个括号生成都是一一对应的关系 let list = []; function trava 阅读全文
posted @ 2020-09-02 16:33 小虾米在code江湖 阅读(144) 评论(0) 推荐(0)
摘要:这道题纯暴力枚举的复杂度是O(n^2),显然还可以最优。 如果需要优化应该在哪里优化? 需要在遍历的环节进行优化,那么应该如何遍历? 因为我们所计算面积,为两板间较小的那块高度*两板间的距离 所以我们可以从数组的头和尾,两边开始遍历。 每次遍历结束,舍弃较小的那块板子。因为两板间的距离固定-1,所以 阅读全文
posted @ 2020-09-02 11:39 小虾米在code江湖 阅读(169) 评论(0) 推荐(0)
摘要:这题。。。没啥好分析的吧。。。模拟一下就行。 关键要分析好模拟需要从哪儿开始转折。 我使用的模拟是遍历一遍,将每一层分成多个字符串数组,最后进行拼接。 吐槽一下:JavaScript的二维数组真的是有点懵~ 代码: 1 function initArray(n) { //创建二维数组 2 var s 阅读全文
posted @ 2020-09-02 11:01 小虾米在code江湖 阅读(146) 评论(0) 推荐(0)
摘要:最长回文子串这道题,最关键的步骤还是遍历字符串。如何有效的遍历字符串,是解这道题的关键。 对于回文串的遍历可以查看算法恩仇录第一章对马拉车算法的讲解: --算法恩仇录-01-小虾米回忆马拉车--(Manacher回文串算法) 然后,接下来就只用找到原数组遍历的起点和终点就行。 JS代码如下~ 1 c 阅读全文
posted @ 2020-09-01 10:00 小虾米在code江湖 阅读(190) 评论(0) 推荐(0)
摘要:1.这是道简单题,之所以记录的原因是其使用链式编程完成字符串的反转。 代码如下: /** * @param {string} s * @return {string} */ var reverseWords = function(s) { let str='', tmp=''; for(let i 阅读全文
posted @ 2020-08-31 10:33 小虾米在code江湖 阅读(178) 评论(0) 推荐(0)