随笔分类 - js算法
摘要:给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 example: 输入:nums = [10,9,2,5,3,7,101,
阅读全文
摘要:/** * @param {number[]} digits * @return {number[]} */ 当我们对数组 digits 加一时,我们只需要关注{digits}digits 的末尾出现了多少个 99 即可。我们可以考虑如下的三种情况: 如果 {digits}digits 的末尾没有
阅读全文
摘要:/** * @param {number[]} nums * @param {number} target * @return {number[]} */ var twoSum = function(nums, target) { let map = new Map() for(let i=0,l=
阅读全文
摘要:最笨的办法实现 一步步判断 /** * @param {string} s * @return {number} */ var myAtoi = function(s) { s = s.trim() let re if(!isNaN(parseInt(s)) && s.length == 1){ r
阅读全文
摘要:/** grid二维数组 */ var landCount = function (grid) { let count = 0 function dfs(row,col) { if(row< 0 || row>=grid.length || col<0 || col>=grid[0].length
阅读全文
摘要:eg: 输入:head = [1,2,3,4,5], left = 2, right = 4 输出:[1,4,3,2,5]相关解法:图解: /** * Definition for singly-linked list. * function ListNode(val, next) { * this
阅读全文
摘要:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 /** * @param {number[]} nums * @return {number} */ var maxSubArray = function(nums) { const memo =
阅读全文
摘要:/** * @param {number} n * @return {number[][]} */ var generateMatrix = function(n) { let matrix=new Array(n).fill(0).map(item=>new Array(n).fill(0)) l
阅读全文
摘要:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 leetcode-49: //字母异位词分组 /* * for..of适用遍历数/数组对象/字符串/map/set等拥有迭代器对象的集合.但是不能遍历对象,因为没有迭代器对象. 与forEach()不同的是,它可
阅读全文
摘要:/* * function ListNode(x){ * this.val = x; * this.next = null; * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return
阅读全文
摘要:/** * * @param matrix int整型二维数组 * @return int整型一维数组 */ function spiralOrder( matrix ) { // write code here if(matrix.length 0){ return [] } let left =
阅读全文
摘要:/** * return topK string * @param strings string字符串一维数组 strings * @param k int整型 the k * @return string字符串二维数组 */ function topKstrings( strings , k )
阅读全文
摘要:var rotate = function(matrix) { var n = matrix.length; //生成二维数组 const newArr = new Array(n).fill(0).map(()=>new Array(n).fill(0)); for(let i =0;i<n;i+
阅读全文
摘要:删除有序链表中重复出现的元素: 描述 给出一个升序排序的链表,删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素。例如:给出的链表为1→2→3→3→4→4→5, 返回1→2→5.给出的链表为1→1→1→2→3, 返回2→3. /* * function ListNode(x){ * th
阅读全文
摘要:假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数。 给定两个这种链表,请生成代表两个整数相加值的结果链表。 例如:链表 1 为 9->3->7,链表 2 为 6->3,最后生成新的结果链表为 1->0->0->0 /* * function ListNode(x){ *
阅读全文
摘要:编写一个函数来查找字符串数组中的最长公共前缀: 输入 : ["abca","abc","abca","abc","abcc"] 返回: "abc" /** * * @param strs string字符串一维数组 * @return string字符串 */ function longestCom
阅读全文
摘要:给定一个数组Array和一个滑动窗口的大小,输出以数组形式表现的滑动窗口中的最大值, 每次滑动窗口向前移动一个单位。 暴力解法: /* * @lc app=leetcode.cn id=239 lang=javascript * * [239] 滑动窗口最大值 */ // @lc code=star
阅读全文
摘要:/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 计算两个数之和 * @param s string字符串 表示第一个整数 * @param t string字符串 表示第二个整数 * @return string字符串 */ function solve(
阅读全文
摘要:题目描述 将给出的链表中的节点每\ k k 个一组翻转,返回翻转后的链表如果链表中的节点数不是\ k k 的倍数,将最后剩下的节点保持原样你不能更改节点中的值,只能更改节点本身。要求空间复杂度 \ O(1) O(1) 例如: 给定的链表是 1→2→3→4→5 对于 k = 2 , 你应该返回 2→1
阅读全文
摘要:描述: 给出一组区间,请合并所有重叠的区间。 请保证合并后的区间按区间起点升序排列。 输入: [[10,30],[20,60],[80,100],[150,180]] 输出: [[10,60],[80,100],[150,180]] 算法代码: /* * function Interval(a, b
阅读全文