前言 昨天和今天复习了二叉树的前序遍历、中序遍历和后序遍历,找到了一种统一的非递归的方法(即使用一个思路非递归实现二叉树的前序、中序和后序遍历)。 思路 思路本质上还是递归,只不过不通过递归函数显示地递归,而是通过栈模拟递归的过程。 具体思路:https://leetcode-cn.com/prob ...
分类:
其他好文 时间:
2020-07-13 15:41:18
阅读次数:
65
题目描述链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/ 解题思路:参考官方题解,解题思路如下:对于二叉树的层序遍历,首先应该考虑到的数据结构便是队列,利用队列现进先出的特性,可以很方便的解决此题。 (1)根 ...
分类:
其他好文 时间:
2020-07-12 20:29:04
阅读次数:
65
通道 Coroutine\Channel 使用本地内存,不同的进程之间内存是隔离的。 只能在同一进程的不同协程内进行 push 和 pop 操作。 Co::set(['hook_flags'=> SWOOLE_HOOK_ALL]); Co\run(function(){ // 设置一个容量为1的通道 ...
分类:
其他好文 时间:
2020-07-12 19:10:33
阅读次数:
108
数组在JS中是非常常用的, 但是和Java等高级编程语言有所不同。 在JS中数组是一个Array 对象, 用于在变量中存储多个值。 数组的常用操作有很多, 我们下面讲分组介绍一些常用的方法: 1、添加和删除元素 push() 向数组末尾添加新的数组项,返回值新数组的长度,原数组改变; pop() 删 ...
分类:
编程语言 时间:
2020-07-12 12:35:22
阅读次数:
81
算法流程: 实现: base.py from abc import ABCMeta, abstractmethod import types class SkoBase(metaclass=ABCMeta): def register(self, operator_name, operator, * ...
分类:
编程语言 时间:
2020-07-12 01:05:49
阅读次数:
95
在iOS中,atomic表示一个类的属性getter/setter具有原子性。那么iOS底层是如何保证这种原子性的呢? 我们有一个类A,它有一个属性X具有atomic: @property (atomic, strong) X *x; 当我们为这个这个X属性赋值的时候:-[A setX:]的汇编代码 ...
分类:
移动开发 时间:
2020-07-12 00:48:34
阅读次数:
103
添加删除数组元素的元素 方法名 说明 返回值 push() 末尾添加一个或多个元素,注意修改原数组 并返回新的长度 pop() 删除数组最后一个元素,把数组长度减1,无参数、修改原数组 返回它删除的元素的值 unshift() 向数组的开头添加一个或更多元素,注意修改原数组 并返回新的长度 shif ...
分类:
编程语言 时间:
2020-07-11 23:00:08
阅读次数:
68
日常网络流. 题目大意: 在一个n*m的矩阵中,每个格子有一定的高度,当高度为0时该格子便不存在,现在这个矩阵中有若干只蜥蜴,每只蜥蜴可以跳到距离不大于d的格子,问有几只蜥蜴无法逃离. 解题思路: 一开始看到这道题迷了好久,知道是网络流但是不懂怎么建边,仔细分析了一波题解,发现思路其实很清晰. 首先 ...
分类:
其他好文 时间:
2020-07-11 22:36:29
阅读次数:
61
由krus求MST可以知道,我们将边集合按照权值大小排序,从小到大贪心的取,其中可以发现,如果权值=x的边,被选取,那么所有权值等于=x的边对应的点应该全部在当前构建的MST中。即,权值相等的边集,在构建MST的过程中,对应点集保持一致。 所以我们这道题目按照权值sort一遍,然后再离线保存下来查询 ...
分类:
其他好文 时间:
2020-07-10 21:17:46
阅读次数:
57
Vue数组的变异方法 Vue 包含一组观察数组的变异方法,所以它们也将会触发视图更新。这些方法如下: push() pop() shift() unshift() splice() sort() reverse() push():往数组最后面添加一个元素,成功返回当前数组的长度 pop():删除数组 ...
分类:
编程语言 时间:
2020-07-10 19:17:13
阅读次数:
72