![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js算法
文章平均质量分 53
前端小趴菜_JL
这个作者很懒,什么都没留下…
展开
-
分享题解09:礼物的最大价值
题目:礼物的最大价值描述在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?示例 1:// 输入:[ [1,3,1], [1,5,1], [4,2,1]]// 输出: 12// 解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物第一种解题思路每次只能向下或向右第一行:自己 = 自己原创 2021-09-10 22:50:03 · 74 阅读 · 0 评论 -
分享题解08:数组放大
有一个 n*n的二维数组,现在我们想将数组放大 K 倍,放大最简单的方法就是在保持现有排列的情况下,平均增加每个像素的数量,示意图如下结果示意图:var arr = [ [0,1], [1,0]];var newArr = [];function bigArr(n,k,arr){ for(let i = 0; i < n;i++){ for(let j = 0; j < n; j++){ let temp = arr原创 2021-09-07 23:53:53 · 422 阅读 · 0 评论 -
分享题解07:链表排序
剑指 Offer II 077. 链表排序题目连接给定链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。var sortList = function(head) { if (!head || head.next === null) return head; let arr = []; while (head) { arr.push(head); head = head.next; } arr.sort((a,b) => a.val -原创 2021-09-06 10:37:08 · 216 阅读 · 0 评论 -
Javascript 字符串全排列组合方法实现
原文链接题目在题目的要求中,存在可能存在重复的样例,因此在最后的结果中需要去重,代码如下:function Permutation(str){ // write code here var result = []; if (str.length <= 1) { return [str]; }else{ for (var i = 0; i < str.length; i++) { var c = str[i转载 2021-08-29 15:43:03 · 293 阅读 · 0 评论 -
分享题解06:最大子序和
题目描述给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例1 输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6 解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例2 输入:nums = [1] 输出:1思路分享难度等级:简单(是的,你没有看错,这个题难度系数简单,是不是感觉大神们把难度拉高了,完全没有思路)。下面代码部分是我的解答步骤,测试通过 190/203,感觉应该是第三层 for原创 2021-08-29 12:30:56 · 127 阅读 · 0 评论 -
分享题解05:数组元素的平方(数组遍历的方法)
描述为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组示例输入:[1, 2, 3, 4]输出:[1, 4, 9, 16]代码输入:var arr = [1, 2, 3, 4, 5];console.log(square(arr));解法一:for遍历这种方法对于有一定语言基础的人,可能是最容易想到的了,思路比较简单,直白。第一种: for 遍历function square(arr) { var newArr = []; for (var原创 2021-08-24 14:46:07 · 1429 阅读 · 0 评论 -
分享题解04:二分法
二分查找二分查找是一种基于比较目标值和数组中间元素的教科书式算法。如果目标值等于中间元素,则找到目标值。如果目标值较小,继续在左侧搜索。如果目标值较大,则继续在右侧搜索。算法步骤:初始化指针 left = 0, right = n - 1。当 left <= right: 比较中间元素 nums[pivot]和目标值 target 。如果 target = nums[pivot],返回 pivot。如果 target <nums[pivot],则在左侧继续搜索 right原创 2021-08-19 13:18:58 · 94 阅读 · 0 评论 -
分享题解03:FED19 移除数组中重复的元素
描述移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回示例1输入:[1, 2, 2, 3, 4, 2, 2], 2输出:[1, 3, 4]// 方法一:// 直接判断数组元素是否与给定数相等,相等则删除// 别忘了删除后的 i--function removeWithoutCopy(arr, item) { for(var i = 0; i < arr.length; i++){ if(arr[i] == i原创 2021-08-18 11:10:27 · 72 阅读 · 0 评论 -
分享题解02:FED10 颜色字符串转换
题目描述将 rgb 颜色字符串转换为十六进制的形式,如 rgb(255, 255, 255) 转为 #ffffffrgb 中每个 , 后面的空格数量不固定十六进制表达式使用六位小写字母如果输入不符合 rgb 格式,返回原始输入示例1输入:‘rgb(255, 255, 255)’输出:#ffffff首先是匹配三个255,之后转换成十六进制,输出使用字符串拼接。function rgb2hex(sRGB) { // 匹配括号里面的数据 let re = /rgb\((\d+原创 2021-08-17 15:01:40 · 160 阅读 · 0 评论 -
分享题解01:FED5 数组去重
题目描述为 Array 对象添加一个去除重复项的方法示例1输入:[false, true, undefined, null, NaN, 0, 1, {}, {}, ‘a’, ‘a’, NaN]输出:[false, true, undefined, null, NaN, 0, 1, {}, {}, ‘a’]这个题,我首先考虑到的是参考纯数字去重的算法——快慢指针进行求解:Array.prototype.uniq = function () { let newarr = [];原创 2021-08-16 21:45:33 · 62 阅读 · 0 评论