摘要:
6. ZigZag Conversion The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pat 阅读全文
摘要:
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2: 输入: "cbbd"输出: "bb" Given a string s, find the longest 阅读全文
摘要:
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例 1: nums1 = [1, 3]nums2 = [2] 则中位数是 2.0示 阅读全文
摘要:
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2: 输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3: 阅读全文
摘要:
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 阅读全文
摘要:
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 num 阅读全文
摘要:
// 交集 const intersection = function (arr1,arr2) { let mergeArr = arr1 && arr2 && arr1.concat(arr2); arr1 = arr2Id(arr1); arr2 = arr2Id(arr2); let idAr 阅读全文
摘要:
今天在leetcode上刷到一题链表排序的题,遇到排序题不能总用快排吧,换个口味,归并排序。如果数组项只有一项或者两项,排序是最简单的,只需比较大小交换一下位置即可。归并排序就是基于这个准则,不断的对数组进行二分,讲一个拥有n项的数组打散成n多个只有一项或者两项的数组,然后将这n多项的数组进行合并, 阅读全文
摘要:
在项目中定义对象数组是非常常见的,这就免不了要对对象数组进行去重。当然不能简单的使用 来解决问题,因为这时候数组中的类型为对象类型,即使完全相同的两个对象也不相等的。下面的例子说明一切: 所以应该使用其他方法来判断两个对象是否相等,能代表这个对象的唯一性的属性,比如id。 使用id举例: 方法一:使 阅读全文
摘要:
最近比较烦,被领导拉去谈话说年后是不是就要跳槽走,凭着我这直男的性子,脱口而出“是的,除非涨薪比较明显”。说完就后悔了,今年吧在这家公司吧也没啥成绩就急着走人,以后的日子贼尴尬。我吧一直对算法比较感兴趣,可是脑子就是转不快,就有时候后端说的东西都有点不明白,一直被同层级的后端牵着走。说实话自己是个失 阅读全文
摘要:
最近在项目上遇到了图片拖动的需求,自己做了好久效果都不怎么好,最后参考了 vue自定义指令实现div拖动,找到了思路,解决了困惑。不过项目业务上的问题是复杂的,不仅仅能拖动那么简单,我在工作上遇到的需求如下几点: 1.实现一个电子地图,包括底图和图标,底图能拖动,图标也能拖,图标拖动时底图不动 2. 阅读全文
摘要:
今天刷LeetCode发现了数组交集的问题,平时工作也都用的非常普遍。所以特别留意了,两个数字数组的交集,有两题 1.交集数组不包含重复数字 2.交集数组包含重复数字 第一题:先给两个数组分别去重,然后再双循环遍历比较,自己想的比较low,参考discuss大神写的https://leetcode. 阅读全文
摘要:
注:以下书籍都是我看过的 js: 《JavaScript忍者秘籍》,《JavaScript高级程序设计》,《你不知道的JavaScript》,《学习JavaScript数据结构与算法》,《JavaScript语言精粹》,《编写可维护的JavaScript》,《编写可测试的JavaScript代码》 阅读全文
摘要:
js 有两种数据结构,array和object,es6又加了两种map和set。js实现字典看似要用object,其实应该使用数组Array,因为数组也是object 代码实现: 阅读全文
摘要:
js实现栈或者队列有两种方式: 1.数组:数组本身提供栈方法(push,pop),队列方法(push,shift)。 代码实现(栈): 代码实现(队列): 2.链表:构造链表结构,说白了就是链表的插入(尾插),移除(栈:末尾节点移除,队列:头结点移除) 代码实现(栈): 代码实现(队列): 阅读全文
摘要:
/* 定义结构 */ var node=function(element){ this.element=element this.next=null } var linkedList=function(){ this.head=new node("head") this.find=find this 阅读全文
摘要:
一维数组的3种初始化的方法对比 /** * 方法一: 不指定长度,循环赋值 * @param {*} length 数组长度 * @param {*} value 数组项初始值 */ Array.prototype.initial1=function(length,value){ for(let i 阅读全文
摘要:
//法一 const isArray1=function(value){ return Object.prototype.toString.apply(value) '[object Array]' } //法二 const isArray2=function(value){ return Arra 阅读全文
摘要:
数组二分查找: 1.先对数组排序,从小到大排序 2.定义两个指针,左指针(left)指向数组第一个元素,右指针(right)指向数组最后一个元素 3.取数组中间(nums[mid])的项和目标值(target)比较 4.如果中值小于目标值,说明目标值在后半数组,将左指针(left)指向nums[mi 阅读全文
摘要:
快速排序:摘除数组中的一项,以此为基准,将剩余的数组项和此项比较大小分成两部分(left和right),然后递归执行left和right,将left,基准和right合并,直到数组只有1项或者0项时,返回数组。 代码如下: 阅读全文