芦苇
芦苇
At first, I config like you all ``` { "presets": ["react-native"], "plugins": [ [ "module-resolver", { "alias": { "app":"./src/app", "com":"./src/component", "utils":"./src/utils" }, "extensions": [ ".js", ".ios.js", ".android.js" ] } ]...
自己没想出来,看了题解的提示想到用Map和数组结合的方式。不得不说remove的操作因为惯性思维不太容易想到 ```js /** * Initialize your data structure here. */ var RandomizedSet = function () { //表示数组中的对应的值的下标是多少 //然后删除的时候就可以根据val找到数组里面的下标 然后在数组中进行删除 this.map = new Map(); //存放值 this.values = []; }; /** *...
> ```js > let RandomizedSet = function() { > this.list = [] > this.map = {} > }; > > RandomizedSet.prototype.insert = function(val) { > this.list.push(val) > > if(!this.map[val] ||...
```javascript function render(template, context) { return template.replace(/{{(.*?)}}/g, function (match, key, index) { return context[key.trim()] || '' }) } ```
1. 从根节点递归往下找,找到一个节点,这个节点满足p和q分别在这个节点的左右子树上就是满足条件的 2. 但是如果找到一个节点发现p和q同时在左子树或者右子树上,说明p和q一个是另一个的子节点,也就是说最近公共祖先是p和q自身中的一个,那么只要继续往下找,先找到谁就返回谁 ```javascript var lowestCommonAncestor = function (root, p, q) { function isInTree(root, node) { if (root === null) return false; if (root === node) return true; return...
- 首先要遍历字符创,记录每个字符出现的次数,利用Map存储字符的索引,队列存储一个数组`[字符, 出现次数]` - 因为要找出的是第一个出现一次的字符,因此还需要把字符的顺序记录下来,所以自然想到了队列存储顺序 - 看了标准答案发现只要再遍历一次字符串就行,不需要队列了 ```javascript var firstUniqChar = function(s) { let map = new Map() let queue = [] for (let i = 0; i < s.length;...
## 基本类型和引用类型 ### 存储方式 JavaScript中有两种类型,分别是基本类型和引用类型。其中基本类型就包括Number、String、Boolean、null、undefined、Symbol、BigInt这几种,剩下的(Array、Regex、Object、Function等等)都是引用类型。通常我们创建这两种类型的值之后会使用一个变量来保存它,而对于基本类型的值我们是直接使用对象保存它的值,对于引用类型的值,我们是保存它的引用(在C语言里就是指针,即内存地址) ```javascript let number = 1 let string = 'abc' let object = { name: 'luwei' } ``` 上面声明了三个变量,其中`number`和`string`是基本类型的值,而`object`是引用类型的值。我们从计算机底层来讨论在声明这三个变量的时候计算机都做了什么: - 程序中的使用到的变量和数据都是在保存在计算机的内存中的,内存又可以分为堆和栈两块区域 - 基本类型的值都是保存在栈空间中的,而引用类型的值是保存在堆空间中的 - 在声明基本类型`number`和`string`的时候,计算机上会在栈中开辟出来两个空间,并分别把这两个空间叫做`number`和`string`,然后在赋值的时候分别把数字`1`和字符串`abc`存入这两个空间内;也就是说,**基本类型的值是直接在栈中保存它的值** -...
```javascript var isSymmetric = function (root) { if (root === null) return true; function symmetric(left, right) { if (left === null && right === null) { return true; } else...
```javascript var postorderTraversal = function (root) { if (root === null) return []; let stack = [root]; let res = []; while (stack.length) { let current = stack.pop(); if (current...
使用一个嵌套队列,外层队列保存每层的数据,内层的队列保存当前层所有的节点 ```javascript var levelOrderBottom = function (root) { if (root === null) return []; let queue = [[root]]; // 外层队列 let print = []; while (queue.length) { let currentLevel =...