
数据结构与算法
qq_26391203
touch my heart
展开
-
49. 字母异位词分组
/** 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。* 输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]输出: [["bat"],["nat","tan"],["ate","eat","tea"]]* 思路:* 怎么把异位词分组,怎样的词算异位词?* 1、对单词的字符按字母排序,eat=>aet,排序后相原创 2022-05-30 22:48:19 · 150 阅读 · 0 评论 -
35.搜索插入位置
/** 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。* *//** * @param {number[]} nums * @param {number} target * @return {number} */var searchInsert = function(nums, target) { if(!nums||!nums.length){ return 0; } var原创 2022-05-29 13:23:58 · 127 阅读 · 0 评论 -
27、移除元素
/*给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。因为需要原地操作,没有辅助空间,考虑双指针l,r,区分val和非val循环遍历,当左指针为val,右指针不为val时,交换l,r的值,当l==r,退出循环,如果当前l的值为val,返回l前面的个数即l,否则返回l前面的个数加当前l对应的元原创 2022-05-25 22:08:05 · 156 阅读 · 0 评论 -
22、生成括号
/** 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。* 有效的括号:* 输入:n = 3* 输出:["((()))","(()())","(())()","()(())","()()()"]* 输入:n = 1* 输出:["()"]** * 从模拟的过程:* 首先串为空,既可以添加(、也可以添加)* 什么时候迭代添加结束,即str的长度为2n,或者无效时;* 什么时候无效? 即左括号的个数比右括号少,其他情况都可以继续迭代* 继续迭原创 2022-05-23 22:48:31 · 215 阅读 · 1 评论 -
21.合并单链表
/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } *//** * @param {ListNode} list1 * @param {ListNode} list2 * @return {Lis原创 2022-05-22 13:14:04 · 222 阅读 · 0 评论 -
1.两数相加
//求数组[15,11,2,7]中两数之和为9的索引数组,即返回[2,3]//哈希法var two_number_sum = function(arr,target){ var map=new Map(); var result = []; for(let i in arr){ map.set(arr[i],i); } for(let i in arr){ var diff=target-arr[i]; if(ma原创 2022-05-17 22:31:50 · 137 阅读 · 0 评论 -
2.两数相加
/*给定两个链表,表示非负数,每位数字逆序排列,每个节点只能存储一位数字,请将两数相加,返回一个表示和的链表function two_num_sum_linkList_store(l1,l2):ListNode在js中怎么表示ListNode在js中怎么构造链表,js构造函数js中使用parseInt()得到整除的结果*/function ListNode(val,next){ this.val=val===undefined?0:val; this.next = (next原创 2022-05-17 22:30:21 · 123 阅读 · 0 评论 -
20.括号匹配
/*给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = "()"输出:true示例 2:输入:s = "()[]{}"输出:true思路: 需要配对,遍历数组的同时,将左括号存储在栈内, 每次用当前的右括号和栈顶元素匹配,匹配成功,指针后移,失败结束; 最后栈不空失败,栈空成功*/const type={ left_s原创 2022-05-18 22:26:05 · 86 阅读 · 0 评论