手写算法:
- https://leetcode-cn.com/problems/serialize-and-deserialize-binary-tree/
```javascript
/**
- Encodes a tree to a single string. *
- @param {TreeNode} root
- @return {string} */ var serialize = function(root) { return rserialize(root,’’) };
/**
- Decodes your encoded data to tree. *
- @param {string} data
- @return {TreeNode} */ var deserialize = function(data) { const dataArray = data.split(“,”); console.log(dataArray) return rdeserialize(dataArray); };
/**
- Your functions will be called as such:
deserialize(serialize(root)); */
function rserialize(root,str){ if (root === null) {
str+= 'NONE,'
} else {
str += root.val + ",";
str =rserialize(root.left,str)
str =rserialize(root.right,str)
} return str } function rdeserialize(data) { if (data[0]===’NONE’) {
data.shift()
return null
} let root = new TreeNode(parseInt(data[0])) data.shift() root.left = rdeserialize(data) root.right = rdeserialize(data) return root } ```
手写题
题目描述:渲染百万条结构简单的大数据时 怎么使用分片思想优化渲染
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<button onclick="startRender()">点我呀~</button>
<ul id="target"></ul>
</body>
<script>
const total = 1000000
const target = document.getElementById('target')
const pageSize = 20
let pageIndex = 0
const pageCount = total / pageSize
const startRender = () => {
const render = () => {
const fragment = document.createDocumentFragment()
for (let i = 0; i < pageSize; i++) {
const li = document.createElement('li')
li.innerText = `hello, ${pageIndex * pageSize + i + 1}`
fragment.appendChild(li)
}
target.appendChild(fragment)
if (pageIndex < pageCount) {
pageIndex++
requestAnimationFrame(render)
}
}
render()
}
</script>
</html>