javaScript算法
javaScript算法
「已注销」
这个作者很懒,什么都没留下…
展开
-
【js】数组外层的参数复制到数组里
js原创 2022-08-03 22:45:43 · 620 阅读 · 0 评论 -
利用for in 数组转对象
for in获取到对象的键名,for获取到数组的下标for of获取到对象的键值数组 arr1=[{title:“a”,id:“1”},{title:“b”,id:“2”},{title:“c”,id:“3”}]使用arr1数组生成一个ObjectObject格式要求:{"arr1[0]_title ": ‘a’,“arr1[0]_id” : ‘1’,“arr1[1]_title” : ‘b’,` “arr1[1]_id”:‘2’}(参数中每个键值均为String).原创 2022-05-25 17:30:59 · 356 阅读 · 0 评论 -
leetcode35. 搜索插入位置js
搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2解决:var searchInsert = function(nums, target) { for(let i=0;i<nums.length;i++) { if(nums[i]>=targ.原创 2021-08-13 12:56:10 · 161 阅读 · 0 评论 -
leetcode27. 移除元素js
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。解决:var removeElement = function(nums, val) { for(let i=0;i<nums.length;i++) { if(nums[i] ==val) { nu原创 2021-08-12 22:47:33 · 70 阅读 · 0 评论 -
leetcode9. 回文数js
回文数给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 1:输入:x = 121输出:true示例 2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。解决:var isPalindrome = function (x) { // 思路:转为.原创 2021-08-11 13:47:55 · 118 阅读 · 0 评论 -
reduce的使用方式
Array.prototype.myMap= function(cb) { return this.reduce((pre, cur,index,arr) => pre.concat(cb(cur, index)), []) } let arr1 = [1, 3,4,5].myMap((item, index) => item + '+'+ index) console.log(arr1, 'arr1')...原创 2021-08-09 21:29:58 · 945 阅读 · 0 评论 -
js实现对象扁平化(树状转为扁平化)
var arr = [{ "Id": "123", "Name": "温小鹿第一层", "children": [{ "Id": "456", "Name": "温小鹿第二层", "children": [{ "Id": "789", "Name": "温小鹿第三原创 2021-08-09 02:13:23 · 1222 阅读 · 0 评论 -
实现数组扁平化(七种方式)
数组扁平化就是把多维数组转为一维数组比如[1, [2,3,3],3,[1, [2,3,8]],8] 转为[1,2,3,3,3,1,2,3,8,8]1.[].concat(…arr) var msg = [1, [2,3,3],3,[1, [2,3,8]],8] function flatten(arr) { while(arr.some(item => Array.isArray(item))) { arr =原创 2021-08-07 23:22:42 · 1147 阅读 · 0 评论 -
get-element-by-id转换为getElementById
解决:var arr = 'get-element-by-id' var str = arr.split('-') for( var i=1; i<str.length-1; i++) { str[i]= str[i].charAt(0).toUpperCase()+str[i].slice(1) } str = str.join("") console.log(str) // for循环的原创 2021-08-07 20:31:05 · 670 阅读 · 0 评论 -
leetcode 2、两数相加js
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807./** * @param {ListNode} l1 * @param {ListNode} l2 * @return {Lis.转载 2021-07-21 21:58:03 · 84 阅读 · 0 评论 -
LeetCode初级算法入门js
数组1. 删除排序数组中的重复项已知是排序数组,只要判断前后两个值,如果一致,就删除。/** * @param {number[]} nums * @return {number} */var removeDuplicates = function(nums) { for(var i=0; i<nums.length-1; i++) { if(nums[i]==nums[i+1]) { nums.splice(i, 1);原创 2021-06-29 23:57:45 · 1009 阅读 · 3 评论