数据结构与算法
该专栏用于记录数据结构相关的算法
crazy的蓝色梦想
小柒 爱前端
展开
-
set --- Leedcode 448 找到所有数组中消失的数字
题目 给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。 找到所有在 [1, n] 范围之间没有出现在数组中的数字。 示例: 输入: [4,3,2,7,8,2,3,1] 输出: [5,6] 解析 使用 set 剔除重复元素,再进行遍历。 var findDisappearedNumbers = function(nums) { const n = nums.length; const res = []; co原创 2020-09-25 11:48:10 · 418 阅读 · 0 评论 -
js 手写代码集合
apply的实现 Function.prototype.myApply = function (obj) { obj = obj || window ; // 保存this的指向 obj.fn = this; // 添加一个属性为调用apply的函数 let result; if(arguments[1]) {// 如果存在第...原创 2020-04-27 13:48:23 · 645 阅读 · 0 评论 -
leedcode 14 最长公共前缀
题目 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。 解析 JavaScript: var longestCommonPrefix = functi...原创 2020-04-26 20:39:09 · 134 阅读 · 0 评论 -
map/异或 --- leedcode 136 只出现一次的数
题目 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 解答 JavaScript: 方法一: map var singleNumber = function(nums) { const map = new Map(); fo...原创 2020-04-26 17:06:32 · 220 阅读 · 0 评论 -
java中队列的使用
前面的话 队列是一种比较特殊的线性结构,是典型的先进先出。它只允许在表的的前端进行删除,在表的后端进行插入。,java中linkedList提供了方法支持队列的使用,实现了Queue接口。 队列的使用 队列的创建: Queue<Integer> queue = new LinkedList<>();//声明队列 添加数据: offer()、add() 删除队首:poll(...原创 2020-03-14 08:20:27 · 179 阅读 · 0 评论 -
java如何构建、打印链表
前面的话 要想使用java语言在本地测试链表相关的算法,必须自己写一个测试代码。 测试代码 public class CreateList { // 创建链表 public static ListNode create(int arr[], int n) { if(n == 0 ) { return null; } // 将数组的第一个元素赋给头指针 ListNode h...原创 2020-01-16 19:44:03 · 970 阅读 · 0 评论 -
二叉树搜索(Leecode 220)
题目 给定一个整数数组,判断数组中是否有两个不同的索引 i 和 j,使得 nums [i] 和 nums [j] 的差的绝对值最大为 t,并且 i 和 j 之间的差的绝对值最大为 ķ。 二叉树搜索 使用set保证:条件(i 和 j 之间的差的绝对值最大为 k)始终满足。 使用二叉树搜索保证:(两个不同的索引 i 和 j,使得 nums [i] 和 nums [j] 的差的绝对值最大为 t)满足。...原创 2020-01-04 22:49:38 · 206 阅读 · 0 评论