分类: 数据结构
二分查找技巧|刷题合集
剑指 Offer 04. 二维数组中的查找
/**
* @param {number[][]} matrix
* @param {number} target
* @return {boolean}
*/
var findNumberIn2DA……
秒杀所有岛屿题目|合集
463. 岛屿的周长
/**
* @param {number[][]} grid
* @return {number}
*/
var islandPerimeter = function(grid) {
let res=0;
le……
回溯算法|DFS刷题合集
46. 全排列
/**
* @param {number[]} nums
* @return {number[][]}
*/
var permute = function(nums) {
let track=[];
let re……
二叉搜索树|刷题合集
230. 二叉搜索树中第K小的元素
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefin……
堆排|快排合集
JavaScript快速排序
方法二(原地快排):
/**
* @param {number[]} nums
* @return {number[]}
*/
var sortArray = function(nums) ……
JavaScript刷题方法总结
数组
数组的foreach、filter、map、find
forEach
功能: 循环遍历数组中的每一项,只能遍历数组
写法:
数组对象.forEach(function(参数变量名1,参数变量……
刷题技巧|二叉树刷题合集
二叉树解题的思维模式分两类:
1、是否可以通过遍历一遍二叉树得到答案?如果可以,用一个traverse函数配合外部变量来实现,这叫「遍历」的思维模式。
……
2,3,n数之和|算法技巧
剑指 Offer 57. 和为s的两个数字
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = funct……
双指针技巧|数组篇刷题合集
26. 删除有序数组中的重复项
/**
* @param {number[]} nums
* @return {number}
*/
var removeDuplicates = function(nums) {
if(nums.le……
双指针技巧|链表篇刷题合集
剑指 Offer 18. 删除链表的节点
单指针:
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* thi……
算法技巧:前缀和数组刷题合集
303. 区域和检索 - 数组不可变
题目要求你实现这样一个类:
class NumArray {
public NumArray(int[] nums) {}
/* 查询闭区间 [left……
滑动窗口的最大值
给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。
示例:
输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释:
滑动……
包含min函数的栈
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。
示例:
MinStack minSta……
判断树B是否是A树的子结构
输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)
B是A的子结构, 即 A中有出现和B相同的结构和节点值。
例如:给定的树 A……