我的算法之路9--二叉树的最大深度
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def maxDepth(self, root: TreeNode) -> int: if not root: return 0 ml=1+self.maxDepth(root.left) mr=1
我的算法之路10-- 对称二叉树
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def isSymmetric(self, root: TreeNode) -> bool: if not root: return True return self.isS(root.left,r
我的算法之路11--二叉树的层次遍历
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def levelOrder(self, root: TreeNode) -> List[List[int]]: al=[] if not root: return al stack=[root]
我的算法之路12--将有序数组转换为二叉搜索树
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def sortedArrayToBST(self, nums: List[int]) -> TreeNode: if not nums: return None start=0 end=len(n
HDU 6191 2017ACM/ICPC广西邀请赛 J Query on A Tree 可持久化01字典树+dfs序
题意 给一颗\(n\)个节点的带点权的树,以\(1\)为根节点,\(q\)次询问,每次询问给出2个数\(u\),\(x\),求\(u\)的子树中的点上的值与\(x\)异或的值最大为多少 分析 先dfs一遍,得到dfs序,就可以将这个问题转化为求区间\([l,r]\)中的值与\(x\)异或值最大的经典问题, 就按dfs序建可持久化01字典树,查询的时候查区间\([in[u],out[u]]\)就行了,\(in[u]\)和\(out[u]\)存的分别是\(u\)的子树上的节点在dfs序上的起始位置
python类的语法和底层实现
语法: class 类名: name = “egon” # 类属性 def __init__(self): self.age = 18 # 对象属性 self.__sex = "female" #对象私有属性 @classmethod def eat(cls): # 类方法,必须用装饰器修饰 ,可以直接 类名.eat()方式调用,对象可以通过 对象名.eat()调用,但内部使用的数据仍然是类的,因此不建议使用这种方式调用 print("eating
PythonStudy——内存管理之垃圾回收 Memory management Garbage collection
内存管理 引用计数:垃圾回收机制的依据 # 1.变量的值被引用,该值的引用计数 +1 # 2.变量的值被解绑,该值的引用计数 -1 # 3.引用计数为0时就会被垃圾回收机制回收 标记清除:解决循环引用问题 # 所有线程能访问到的栈区变量,称之为 gc roots对象 # 1.所有gc roots对象可以直接或间接访问到的变量值,都会被 标记机制 标记为存活状态 # 2.将所有存活状态的值形成新的拷贝,变量完成重新引用 # 3.清除机制 会将之前所有产生的值都进行回收 分代回收:采用的还是引用计
Tornado集成JSON Web Token方式登录
本项目github地址 前端测试模板如下: Tornado restful api 项目 项目结构如下: 项目组织类似于django,由独立的app模块构成。 登录接口设计 模式:post -> /login/ 携带参数:{username:"", password:""} 返回:{token: "这里是JWT"} Tornado集成JWT Pyjwt的github地址 首先安装Pyjwt第三方库 $ pip install pyjwt 配置Pyjwt jwt_expire 单位为秒,图中的表
Python-----多线程threading用法
threading模块是Python里面常用的线程模块,多线程处理任务对于提升效率非常重要,先说一下线程和进程的各种区别,如图 概括起来就是 IO密集型(不用CPU) 多线程 计算密集型(用CPU) 多进程 使用线程和进程的目的都是为了提升效率 (1)单进程单线程,主进程、主线程 (2)自定义线程: 主进程 主线程 子线程 2、threading模块可以创建多个线程,不过由于GIL锁的存在,Python在
“代取吧” 风险分析 ——软件工程实践专题
“代取吧”风险分析 1. People 人员 1.1 团队成员能力风险 团队成员的能力(包括业务能力和技术能力)和素质,对项目的进展、项目的质量有很大的影响。如果团队成员对于开发所需要的技术一窍不通,那么开发进度必将迟缓。 预防这种风险的办法是在所有的项目成员进行自主地针对性技术的学习然后项目经理将合适的人安排到合适的岗位上。 1.2 团队成员协作风险 团队成员是否能齐心协力为项目的共同目标服务,是影响进度和质量的关键因素。如果团队成员发生分歧或者争吵,那么项目进度将会迟缓。 预防这种风险的办
关键字搜索显示后描红关键字
将关键字设置喜欢的样式后,进行替换操作即可 $key="<b style='color: red;'>".$keywords."</b>";
$at_title=str_replace($keywords,$key,$vo['at_title']);
echo $at_title;
微信扫码支付(3):获取验签秘钥
官方文档:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=23_1&index=1 1.签名生成代码 import java.util.HashMap;
import java.util.Map;
public class WXTest {
public static void main(String[] args) throws Exception {
Map<String, String> params =
4.23—009—周二
今日所学内容:内存管理 一、引用计数 1、变量的值被引用,该值的引用计数 +1 2、变量的值被解绑,该值的引用计数 -1 3、引用计数为0时就会被垃圾回收机制回收 二、引用计数会出现循环引用问题:相互引用无法释放 1、两个变量引用其值,值之间又相互引用 2、变量与值进行解绑,但是值之间还存在相互引用,导致值得引用计数永远 >0 3、引用计数>0的值永远无法被引用计数机制回收,导致内存泄露 三、标记清除:解决循环引用问题 所有线程能访问到的栈区变量,称之为 gc roots对象 1、所有
[区块链\BTC原理\源码]用 Go 构建一个区块链原型
摘要 本文构建了一个使用工作量证明机制(POW)的类BTC的区块链。将区块链持久化到一个Bolt数据库中,然后会提供一个简单的命令行接口,用来完成一些与区块链的交互操作。这篇文章目的是希望帮助大家理解BTC源码的架构,所以主要专注于的实现原理及存储上,暂时忽略了 “分布式” 这个部分。严格意义上还不能算是一个完全意义上的区块链系统。 开发环境 语言:GO; 数据库:BoltDB; IDE: Goland或其他工具都可以; 系统:不限,本文使用windows。 BoltDB数据库 实际上,选择任
Deepin linux Compass.app安装
compass.app是集成了sass的工具,安装完Compass就能够使用sass。 首先,上官网 可以看到官网上推荐的两种sass使用方式,application&command line application里不仅仅只有Compass,不过现在点击Compass.app进行下载。 虽然通常我们说sass运行在Ruby环境下,但Compass.app安装使用并不需要安装Ruby环境,官网已经解释了: Compass.app is written in Java (JRuby), and
SpringBoot 集成Netty实现UDP Server
注:ApplicationRunner 接口是在容器启动成功后的最后一步回调(类似开机自启动)。 UDPServer package com.vmware.vCenterEvent.netty;
import io.netty.bootstrap.Bootstrap;
import io.netty.channel.*;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio
今日推荐
周排行