- 博客(53)
- 收藏
- 关注
原创 JavaScript / TypeScript for LeetCode (132)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( 剑指 Offer 18 ) 删除链表的节点2、解题思路方法:链表题,玩指针1、边界条件预判2、创建两个个指针,初始指向头部(prev指针方便删除节点)3、while循环遍历链表,找到就删除节点,并移除循环4、返回链表
2020-09-30 18:37:01 169
原创 JavaScript / TypeScript for LeetCode (131)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( 剑指 Offer 17 ) 打印从1到最大的n位数2、解题思路方法一:暴力法直接Math.pow(10, n) - 1得到上界方法二:快速幂参考:【剑指 Offer 16. 数值的整数次方】《快速幂算法》例如:求a的
2020-09-30 18:07:02 106
原创 JavaScript / TypeScript for LeetCode (130)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( LeetCode-第145题 ) 二叉树的后序遍历2、解题思路方法一、递归方法一、递归方法二、迭代注意:利用“栈”来实现递归的效果1、创建栈和结果数组2、创建两个指针: 2.1、curr指针指向当前所在的节点,初
2020-09-29 21:24:27 79
原创 JavaScript / TypeScript for LeetCode (129)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( LeetCode-第117题 ) 填充每个节点的下一个右侧节点指针 II2、解题思路方法:广度优先搜索注意:BFS需要维持一个队列!1、边界条件预判2、创建队列,存储同一层的所有节点3、先把根节点入队4、队列不为空的话
2020-09-28 19:47:01 83
原创 JavaScript / TypeScript for LeetCode (128)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( LeetCode-第235题 ) 二叉搜索树的最近公共祖先2、解题思路方法:递归注意:二叉搜索树特点 -> 左小右大1、如果p,q的节点值都大于当前节点值,则说明p,q在当前节点的左子树中2、如果p,q的节点值都小于
2020-09-27 17:28:48 185 1
原创 JavaScript / TypeScript for LeetCode (127)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( LeetCode-第113题 ) 路径总和 II2、解题思路方法:深度优先递归 回溯创建dfs函数: 1、递归结束条件 2、将当前非空节点加入路径 3、将当前节点值从目标sum中减去 4、碰到叶
2020-09-26 15:28:53 72
原创 JavaScript / TypeScript for LeetCode (126)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( LeetCode-第106题 ) 从中序与后序遍历序列构造二叉树2、解题思路方法:递归【参考105.Construct Binary Tree from Preorder and Inorder Traversal】注意:
2020-09-25 21:15:25 68
原创 JavaScript / TypeScript for LeetCode (125)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( LeetCode-第105题 ) 从前序与中序遍历序列构造二叉树2、解题思路方法:递归注意:前序遍历 -> [ 根节点, [左子树的前序遍历结果], [右子树的前序遍历结果] ]中序遍历 -> [ [左子树的中
2020-09-25 20:50:17 113
原创 JavaScript / TypeScript for LeetCode (124)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( LeetCode-第617题 ) 合并二叉树2、解题思路方法:递归1、如果两个节点都为空,返回null2、如果t1, t2有一者为空,则节点值不用相加,直接返回另外的非空的节点值3、否则,都不为空,需要将节点值相加,直接
2020-09-23 21:18:00 88
原创 JavaScript / TypeScript for LeetCode (123)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( 剑指 Offer 16 ) 数值的整数次方2、解题思路方法:快速幂算法例如:求a的11次11 = (1011)b = 2的3次 * 1 + 2的2次 * 1 + 2的1次 * 1 + 2的0次 * 1a的11次 = (a的
2020-09-22 20:33:05 76
原创 JavaScript / TypeScript for LeetCode (122)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( LeetCode-第538题 ) 把二叉搜索树转换为累加树2、解题思路方法:反序中序遍历1、中序遍历可以得到二叉搜索树的节点值升序排列2、反序过来的话,可以得到节点值降序排列3、记录当前节点值之前的节点值总和,加上自己的节
2020-09-22 17:14:31 131
原创 JavaScript / TypeScript for LeetCode (121)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( 剑指 Offer 15 ) 二进制中1的个数2、解题思路方法:位运算任何数与1按位与的话,就可以判断其最右边的那位是否为1!!2.1、JavaScript Solution/** * @param {number} n
2020-09-20 20:21:22 92
原创 JavaScript / TypeScript for LeetCode (120)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( 剑指 Offer 14- II ) 剪绳子 II2、解题思路方法:数学推导法注意,与“剪绳子I”不同的是2 <= n <= 1000即在大数n情况下,为防止溢出int范围,需要进行求余1、经推导,每段绳子的长度
2020-09-20 14:09:07 73
原创 JavaScript / TypeScript for LeetCode (119)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( LeetCode-第343题 ) 整数拆分2、解题思路方法:最优化问题 – 动态规划1、状态:dp[i] 表示将正整数 ii 拆分成至少两个正整数的和之后,这些正整数的最大乘积。2、状态转移方程:当 j 固定时,有 dp[i
2020-09-20 13:34:06 43
原创 JavaScript / TypeScript for LeetCode (118)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( 剑指 Offer 14- I ) 剪绳子2、解题思路方法:最优化问题 – 动态规划1、状态:dp[i] 表示将正整数 ii 拆分成至少两个正整数的和之后,这些正整数的最大乘积。2、状态转移方程:当 j 固定时,有 dp[i]
2020-09-20 13:26:07 66
原创 Java SE -- 学习笔记 (Day01)
是差点运气,可我一直在努力!当前进程:开始时间:2020.9.19结束时间:undefined1、Java Beanpackage 定义一个标准类;/*一个标准的类通常要拥有下面四个组成部分:1. 所有的成员变量都要使用private关键字修饰2. 为每一个成员变量编写一对Getter/Setter方法3. 编写一个【无参数】的构造方法4. 编写一个【全参数】的构造方法这样标准的类也叫做Java Bean */public class Person { pri
2020-09-19 20:41:17 92
原创 JavaScript / TypeScript for LeetCode (117)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( 剑指 Offer 13 ) 机器人的运动范围2、解题思路方法:深度优先搜索1、创建二维数组记录每个方格是否被访问过2、从起点(0,0)位置开始搜索可以到达的方格3、创建深度优先递归实现的函数 3.1、递归结束条件:
2020-09-19 17:37:32 96
原创 JavaScript / TypeScript for LeetCode (116)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( 剑指 Offer 12 ) 矩阵中的路径2、解题思路方法:深度优先搜索类似【200、岛屿数量】1、创建记录【是否访问】标志的数组2、遍历二维数组,每个字符都上下左右去递归遍历周围字符3、创建dfs函数: 3.1、递归
2020-09-19 16:57:10 86
原创 JavaScript / TypeScript for LeetCode (115)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( 剑指 Offer 11 ) 旋转数组的最小数字2、解题思路方法:先考虑翻转分界区再二分搜索参考【154.Find Minimum in Rotated Sorted Array II】1、预判,输入数组只有一个元素,则返回第
2020-09-19 16:25:04 88
原创 JavaScript / TypeScript for LeetCode (114)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( LeetCode-第404题 ) 左叶子之和2、解题思路深度优先搜索2.1、JavaScript Solution/** * Definition for a binary tree node. * function
2020-09-19 16:03:36 116
原创 JavaScript / TypeScript for LeetCode (113)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( LeetCode-第226题 ) 翻转二叉树2、解题思路递归2.1、JavaScript Solution/** * Definition for a binary tree node. * function Tree
2020-09-16 22:57:50 149
原创 JavaScript / TypeScript for LeetCode (112)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( 剑指 Offer 10- II ) 青蛙跳台阶问题2、解题思路方法:动态规划1、状态:dp[i] 到达当前台阶有i种跳法2、状态转移方程:dp[i] = dp[i - 1] + dp[i - 2]2.1、JavaScri
2020-09-14 23:05:08 59
原创 JavaScript / TypeScript for LeetCode (111)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( 剑指 Offer 10- I ) 斐波那契数列2、解题思路方法一、记忆化方法二、优化空间复杂度:只使用两个变量去记忆化存储前两个数值2.1、JavaScript Solution/** * @param {numbe
2020-09-14 22:18:13 64
原创 JavaScript / TypeScript for LeetCode (110)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( 剑指 Offer 09 ) 用两个栈实现队列2、解题思路两个栈(数组模拟),分别为输入栈和输出栈注意:出队时,注意检查输出栈是否为空 1、为空的话,就把输入栈的所有内容全部倒入输出栈; 2、不为空的话,不能直接倒入,因
2020-09-13 20:12:35 77
原创 JavaScript / TypeScript for LeetCode (109)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求(剑指 Offer 07) 重建二叉树2、解题思路方法:递归1、边界条件预判2、前序遍历的第一个值就是当前树根节点值,以此值来生成根节点3、在中序遍历中找到该根节点所在位置,以此分界,其左边所有值即为其左子树,右边则为右子树
2020-09-13 19:25:25 128
原创 JavaScript / TypeScript for LeetCode (108)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( LeetCode-第79题 ) 单词搜索2、解题思路方法:深度优先搜索类似【200、岛屿数量】1、创建记录【是否访问】标志的数组2、遍历二维数组,调用递归函数3、创建dfs函数: 3.1、递归结束条件 3.2、边
2020-09-13 16:50:10 110
原创 JavaScript / TypeScript for LeetCode (107)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( 剑指 Offer 06 ) 从尾到头打印链表2、解题思路解题思路:1、遍历一遍链表,记录其长度2、以其长度,创建一个等长度的数组3、从数组最后位置依次加入链表节点值2.1、JavaScript Solution/**
2020-09-12 19:24:11 75
原创 JavaScript / TypeScript for LeetCode (106)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( LeetCode-第142题 ) 环形链表 II2、解题思路方法:链表题,玩指针类似于【141.Linked List Cycle】1、边界条件为预判,如果输入为空链表,则返回null2、创建两个指针,分别为快指针和慢指针
2020-09-12 18:58:46 68
原创 JavaScript / TypeScript for LeetCode (105)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( 剑指 Offer 05 ) 替换空格2、解题思路借助新字符串操作2.1、JavaScript Solution/** * @param {string} s * @return {string} */var rep
2020-09-12 14:13:53 116
原创 JavaScript / TypeScript for LeetCode (104)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( LeetCode-第637题 ) 二叉树的层平均值2、解题思路方法:广度优先搜索类似102.Binary Tree Level Order Traversal1、初始时,将根节点加入队列2、每一轮遍历时,将队列中的节点全部
2020-09-12 13:14:03 107
原创 JavaScript / TypeScript for LeetCode (103)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( 剑指 Offer 04 ) 二维数组中的查找2、解题思路从矩阵的右上角开始查找: 1、如果找到了,返回true 2、如果值比target小,则说明这一行都比target小,row往下移一行 row++ 3
2020-09-11 22:24:32 70
原创 JavaScript / TypeScript for LeetCode (102)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( LeetCode-第107题 ) 二叉树的层次遍历 II2、解题思路方法:广度优先搜索广度优先搜索 -- 元素存入“队列”深度优先搜索 -- 元素存入“栈”或递归实现1、先自上而下一层一层深度优先搜索,把每层的节点保存进二
2020-09-11 21:50:23 48
原创 JavaScript / TypeScript for LeetCode (101)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( LeetCode-第216题 ) 组合总和 III2、解题思路方法:递归回溯法与39. 组合总和相比,candidates = [1,2,3,4,5,6,7,8,9] target = n
2020-09-11 20:56:39 92
原创 JavaScript / TypeScript for LeetCode (100)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( LeetCode-第40题 ) 组合总和 II2、解题思路方法:递归回溯法2.1、JavaScript Solution/** * @param {number[]} candidates * @param {numb
2020-09-11 20:13:44 55
原创 JavaScript / TypeScript for LeetCode (九十九)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( LeetCode-第102题 ) 二叉树的层序遍历2、解题思路方法:广度优先搜索广度优先搜索 -- 元素存入“队列”深度优先搜索 -- 元素存入“栈”或递归实现1、先自上而下一层一层深度优先搜索,把每层的节点保存进二维数组
2020-09-11 14:24:21 144
原创 JavaScript / TypeScript for LeetCode (九十八)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( LeetCode-第347题 ) 前 K 个高频元素2、解题思路1、利用map字典统计数组所有元素出现的次数2、选出前k个高频出现的元素2.1、JavaScript Solution/** * @param {numb
2020-09-09 20:55:50 97
原创 JavaScript / TypeScript for LeetCode (九十七)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( 剑指 Offer 03) 数组中重复的数字2、解题思路遍历数组,检查当前元素是否出现过: 1、如果之前没有出现过,说明是第一次出现,标记为1 2、如果出现过,直接返回该元素2.1、JavaScript Sol
2020-09-09 19:56:09 67
原创 JavaScript / TypeScript for LeetCode (九十六)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( LeetCode-第39题 ) 组合总和2、解题思路方法:回溯法回溯三部曲2.1、JavaScript Solution/** * @param {number[]} candidates * @param {num
2020-09-09 19:11:44 118
原创 JavaScript / TypeScript for LeetCode (九十五)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( LeetCode-第34题 ) 在排序数组中查找元素的第一个和最后一个位置2、解题思路方法:二分搜索注意:由于需要找最开始和最后出现的位置,所以需要在找到一个target之后, 判断要将当前的mid往左移动到左端,还是
2020-09-08 22:05:52 114
原创 JavaScript / TypeScript for LeetCode (九十四)
是差点运气,可我一直在努力!当前进程:开始时间:2020.6.27结束时间:undefinedGitHub仓库:https://github.com/Cundefined/JavaScript-or-TypeScript-for-LeetCode1、题目要求( LeetCode-第77题 ) 组合2、解题思路解题思路:回溯法2.1、JavaScript Solution/** * @param {number} n * @param {number} k * @return
2020-09-08 20:31:51 73
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人