
LeetCode
LeetCode 刷题记录
阿蒙Amon
这个作者很懒,什么都没留下…
展开
-
LeetCode - 856. Score of Parentheses
1. 问题描述描述:给定一个括号字符串 S,按下述规则计算该字符串的分数:() 得 1 分。AB 得 A + B 分,其中 A 和 B 是括号字符串。(A) 得 2 * A 分,其中 A 是括号字符串。输入:括号字符串输出:括号值2. 解题思路关键点:栈javascript/** * @param {string} S * @return {number} */var scoreOfParentheses = function原创 2021-04-07 22:18:52 · 200 阅读 · 0 评论 -
LeetCode - 338. Counting Bits
1. 问解题步骤## 1. 问题描述描述:给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。输入:非负整数输出:数组2. 解题思路关键点:题目要求时间复杂度为O(n),空间复杂度O(n)。根据f(2)=1, f(3)=f(2)+1, f(4)=1,f(5)=f(1)+f(4),f(6)=f(2)+f(4), f(7)=f(3)+f(4)…;找出规律:原创 2021-03-24 23:38:13 · 219 阅读 · 0 评论 -
LeetCode - 191. Number of 1 Bits
1. 问题描述描述:编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数。输入:无符号整数输出:二进制中1的个数2. 解题思路(位运算)关键点:取二进制位解题步骤:a. 遍历数字每一位b. 统计1的个数javascript/** * 位运算取位 * @param {number} n - a positive integer * @return {number} */var hammingWeight =原创 2021-03-24 22:16:23 · 332 阅读 · 0 评论 -
LeetCode - 1313. Decompress Run-Length Encoded List
1. 问题描述描述:解码数组输入:编码后的数组输出:解码后的数组2. 解题思路关键点:数组生成javascript/** * @param {number[]} nums * @return {number[]} */var decompressRLElist = function (nums) { let arr = []; for (let i = 0; i < nums.length; i = i + 2) { arr.push(..原创 2021-03-22 22:34:38 · 85 阅读 · 0 评论 -
LeetCode - 1720. Decode XORed Array
1. 问题描述描述:未知 整数数组 arr 由 n 个非负整数组成。经编码后变为长度为 n - 1 的另一个整数数组 encoded ,其中 encoded[i] = arr[i] XOR arr[i + 1] 。例如,arr = [1,0,2,1] 经编码后得到 encoded = [1,2,3] 。给你编码后的数组 encoded 和原数组 arr 的第一个元素 first(arr[0])。请解码返回原数组 arr 。可以证明答案存在并且是唯一的。输入:encoded和first输出原创 2021-03-22 21:48:58 · 182 阅读 · 0 评论 -
LeetCode - 832. Flipping an Image
1. 问题描述描述:二维数组,行翻转,每个元素取非。输入:二维数组输出:二维数组2. 解题思路关键点:行翻转,元素取非解题步骤:a. 遍历行b. 行翻转,元素取非javascript/** * @param {number[][]} image * @return {number[][]} */var flipAndInvertImage = function (image) { for (let i = 0; i < image.length; i+原创 2021-03-21 22:12:42 · 83 阅读 · 0 评论 -
LeetCode - 150. Evaluate Reverse Polish Notation
1. 问题描述描述:逆波兰表达式求值输入:逆波兰表达式数组输出:最后的结果2. 解题思路关键点:如果当前字符为变量或者为数字,则压栈,如果是运算符,则将栈顶两个元素弹出作相应运算,结果再入栈,最后当表达式扫描完后,栈里的就是结果。解题步骤:a. 构建队列b. 求解javascript/** * @param {string[]} tokens * @return {number} */var evalRPN = function (tokens) { let原创 2021-03-20 22:13:41 · 126 阅读 · 0 评论 -
LeetCode - 145. Binary Tree Postorder Traversal
1. 问题描述描述:经典数据结构问题:二叉树的后根遍历输入:二叉树的根输出:后根遍历结果2. 解题思路关键点:递归javascript/** * @param {TreeNode} root * @return {number[]} */var postorderTraversal = function (root) { let arr = []; (function (root) { if (root) { argume原创 2021-03-20 19:16:09 · 110 阅读 · 0 评论 -
LeetCode - 844. Backspace String Compare
1. 问题描述描述:比较输入后的字符串是否相等输入:两个字符串输出:是否相等2. 解题思路1关键点:如何得到backspace后的字符串。解题步骤:a. 求得backspace后的字符串b. 比较相等C#:public class Solution{ public bool BackspaceCompare(string S, string T) { return this.ParseString(S) == this.ParseStrin原创 2021-03-18 23:07:30 · 107 阅读 · 0 评论 -
LeetCode - 1290. Convert Binary Number in a Linked List to Integer
1. 问题描述描述:二进制位链表转十进制输入:二进制位链表输出:十进制结果2. 解题思路关键点:求指数解题步骤:a. 求指数b. 转十进制javascript:/** * @param {ListNode} head * @return {number} */var getDecimalValue = function (head) { let length = 0; let p = head; while (p) {原创 2021-03-17 23:05:17 · 104 阅读 · 0 评论 -
LeetCode - 771. Jewels and Stones
1. 问题描述描述:查找字符串stones中有几个字符在字符串jewels中。输入:stones和jewels输出:stones中字符在jewels数量2. 解题思路1关键点:遍历stones中字符,判断字符是否在jewels中。解题步骤:a. 遍历stonesb. 判断字符存在javascript/** * @param {string} jewels * @param {string} stones * @return {number} */var numJe原创 2021-03-16 22:04:53 · 130 阅读 · 0 评论 -
LeetCode - 237. Delete Node in a Linked List
1. 问题描述描述:删除输入节点,这题有点坑,看了好久才明白什么意思。输入:节点输出:无2. 解题思路关键点:好像没有。/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } *//** * @param {ListNode} node * @return {void} Do not retu原创 2021-03-15 23:29:59 · 113 阅读 · 0 评论 -
LeetCode - 224. Basic Calculator
1. 问题描述描述:给出一个算数表达式字符串,计算其结果。字符串由’+’、’-’、’ ‘、’(’、’)'组成。输入:表达式字符串输出:表达式计算结果2. 解题思路关键点:解析字符串、计算结果解题步骤:a. 解析字符串b. 计算括号内结果c. 计算最终结果javascript:var calculate = function (s) { if (s.length === 0) { return 0; } let arr = pare原创 2021-03-15 22:58:14 · 115 阅读 · 0 评论 -
LeetCode - 1684. Count the Number of Consistent Strings
1. 问题描述描述:如果一个字符串的每一个字符都在 allowed 中,就称这个字符串是 一致字符串 。 给出一个字符串数组words和一个字符串allowed,统计字符串数组中一致字符串数量。输入:字符串allowed和字符串数组words输出:一致字符串数量2. 解题思路1关键点:如何判断一个字符串是一致字符串。解题步骤:a. 实现一致字符串判断方法b. 遍历words中字符串,根据[a]中方法筛选一致字符串,并统计数量。C#:p原创 2021-03-12 16:57:28 · 115 阅读 · 0 评论