leetcode刷题记录
Forina_Han
这个作者很懒,什么都没留下…
展开
-
数结lc刷题复习 - 1
217. 存在重复元素 存在重复元素 使用Set的size和Array的length进行判断即可。 最初试图采用分治解决,但该题无法分解为最小子问题,因为左侧数组不存在重复元素,右侧不存在重复元素,并不代表原数组不存在重复元素(即左右数组含有相同元素的情况,如[1,2,3,1] 可遍历数组,使用hashMap对值做标记,如果发现重复标记则退出遍历。 可针对数组排序,扫描相邻元素是否存在相同值,时间换空间。 53. 最大子数组和 最大子数组和 动规,dp[i]为输入数组中下标为i的包含末尾位的子数原创 2022-02-13 22:12:48 · 295 阅读 · 0 评论 -
字符串算术运算
题目:k * [codedString] = k个codeString相加。其中k位正整数。 样例: “3*[a2*[c]]” 输出:“accaccacc” 思路:看到括号匹配首先用栈。再对可能遇到的情况进行分类。 function computeString(str) { // write code here // 准备两个栈,一个数字栈,一个字符栈 let stack = [], numStack = [], res = '';原创 2021-08-02 11:33:17 · 283 阅读 · 0 评论 -
判断树子结构
// 剑指-26 B 是否为 A 的子结构 var isSubStructure = function (A, B) { function fn(A, B) { // 剪枝 if (flag || !A || !B) return; // 找到该节点,从本节点判断是不是其子结构 if (A.val == B.val) { let que = [A, B]; let tmp = true;原创 2021-07-29 22:16:10 · 109 阅读 · 0 评论 -
最长回文子串,等题目
最长回文子串 采用中心扩散的方法。 /** * @param {string} s * @return {string} */ var longestPalindrome = function (s) { function fn(s, i) { let p = i - 1, q = i + 1; // 单中心扩散 while (p >= 0 && q < s.length) { if (s[p]原创 2021-07-28 18:03:32 · 83 阅读 · 0 评论 -
栈的压入、弹出序列
改了两行,比之前快了不少,稍微记录下 本题就是模拟出栈入栈的过程。 // t-31 /** * @param {number[]} pushed * @param {number[]} popped * @return {boolean} */ var validateStackSequences = function(pushed, popped) { let stack = []; // 思路很简单,popped首元素即先出栈的元素 // 该元素能出栈,按照入栈顺序,原创 2021-07-24 11:49:39 · 71 阅读 · 0 评论 -
字符串相加与字符串相乘
字符串相加与字符串相乘题目 字符串相加 字符串相乘 // t415-字符串相加 92 ms 40.3 MB /** * @param {string} num1 * @param {string} num2 * @return {string} */ var addStrings = function (num1, num2) { if (num2 === "0") return num1; if (num1 === "0") return num2; // 首先转置,方便原创 2021-07-20 16:10:31 · 167 阅读 · 0 评论 -
树遍历等复习
很基础的知识,简单复习,做个记录 /* 中序遍历 */ // t94 - 中序遍历 - 递归 68 ms 37.7 MB var inorderTraversal = function(root,res = []) { if(!root) return res; inorderTraversal(root.left,res); res.push(root.val); inorderTraversal(root.right,res);原创 2021-07-19 16:11:44 · 62 阅读 · 0 评论 -
20210719-t101-对称二叉树
采用两种解法。 两树是否镜像对称,取决于其左树与右树。 1.左树的根节点 = 右树的根节点 2. 左树的左树与右树的右树镜像对称。 3. 左树的右树与右树的左树镜像对称。 递归解法: /** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefine原创 2021-07-19 13:18:59 · 71 阅读 · 0 评论