剑指offer: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。

递归做法: * 将左子树转成一个左双向链表,并返回该链表的第一个节点(最左边的节点) * 定位到左链表的最后一个节点(即左子树的最右节点) * 如果左链表非空,将根的left指向左子树的最右节点,最右节点的right指向root * 将右子树转成一个右双向链表,并返回链表的第一个节点 * 如果右链表非空,将root的right指向右链表的第一个节点,第一个节点的left指向root public TreeNode Convert(TreeNode pRootOfTree) {
分类: 其他 发布时间: 12-03 20:34 阅读次数: 0

关于时间API

如何正确处理时间 现实生活的世界里,时间是不断向前的,如果向前追溯时间的起点,可能是宇宙出生时,又或是宇宙出现之前, 但肯定是我们目前无法找到的,我们不知道现在距离时间原点的精确距离。所以我们要表示时间, 就需要人为定义一个原点。 原点被规定为,格林威治时间(GMT)1970年1月1日的午夜 为起点,之于为啥是GMT时间,大概是因为本初子午线在那的原因吧。 Java中的时间 如果你跟你朋友说:“我们 1484301456 一起去吃饭,别迟到!”,而你朋友能马上理解你说的时间,表示时间就会很简单
分类: 其他 发布时间: 12-03 20:34 阅读次数: 0

pyton学习笔记

print print(''''''),三个单引号表示根据打印内容,内容换行打印就换行 Python算术运算
分类: 其他 发布时间: 12-03 20:34 阅读次数: 0

解锁网络编程之NIO的前世今生

NIO 内容概览: NIO 网络编程模型 NIO 网络编程详解 NIO 网络编程实战 NIO 网络编程缺陷 一、NIO网络编程模型 1、编程模型定义 NIO : 又叫Non-blocking I/O或New I/O;全新的输入输出标准库; 做为原始I/O的补充,为了高性能和高并发的场景使用。 模型:对事物共性的抽象; 编程模型:对编程共性的抽象; 2、BIO网络模型 服务端启动,开始建立监听客户端的连接请求; 客户端启动,向服务器端发起建立连接请求; 服务器在收到客户端的请求后,将会创建一个新
分类: 其他 发布时间: 12-03 20:34 阅读次数: 0

在Pytorch上使用稀疏矩阵

在Pytorch上使用稀疏矩阵 最近在写一个NLP的小项目,用到了Pytorch做神经网络模型。但是众所周知NLP的一个特点就是特征矩阵是稀疏矩阵,当时处理稀疏矩阵用的是scipy.sparse,现在要把它放到Pytorch中,还是费了一点周折的 首先,如何把python的二维数组(这里以trainData为例)转换为稀疏矩阵呢?这一步很简单,只需要 from scipy.sparse import coo_matrix,然后使用coo_matrix(trainData)就好了 其实 scip
分类: 其他 发布时间: 12-03 20:34 阅读次数: 0

vs code远程开发及ssh配置

https://blog.csdn.net/qq_33319140/article/details/98965755
分类: 其他 发布时间: 12-03 20:34 阅读次数: 0

案例:动态页面模拟点击

# -*- coding:utf-8 -*- # python的测试模块 import unittest from selenium.webdriver import Firefox from selenium.webdriver.firefox.options import Options from bs4 import BeautifulSoup class douyuSelenium(unittest.TestCase): # 初始化方法 de
分类: 其他 发布时间: 12-03 20:34 阅读次数: 0

Netty学习第四章--spring boot整合netty的使用

  现在大多数项目都是基于spring boot进行开发,所以我们以spring boot作为开发框架来使用netty。使用spring boot的一个好处就是能给将netty的业务拆分出来,并通过spring cloud整合到项目中。   我们以一个简单的客户端发送消息到服务的场景编写一个实例。 一、服务端模块   netty中服务端一般分为两个类,一个是启动配置类,另一个是消息的逻辑处理类   1.启动配置类 import io.netty.bootstrap.ServerBootstra
分类: 其他 发布时间: 12-03 20:34 阅读次数: 0

关于枚举

很多同学在学习Java的过程中可能会听到一种叫枚举的数据类型,那到底什么是枚举呢? 在Java程序中又是怎么使用枚举的呢? 下面我们就简单的讲解下这个神秘的枚举类型。 什么是枚举? 枚举:枚举其实就是一种数据类型,跟int, char 这种差不多。是JDK1.5以后引入的一种新的数据类型。 它有一定的特点就是:在创建好一个枚举类型后,能够使用的量,只能是enum里面规定的值。 当然在定义枚举时,有要求:枚举中的量必须是不变的,并且是有限的。 什么意思呢? 例如: 一周中的周一(MONDAY),
分类: 其他 发布时间: 12-03 20:34 阅读次数: 0

一张图读懂非公平锁与公平锁

在Java并发编程中,公平锁与非公平锁是很常见的概念,ReentrantLock、ReadWriteLock默认都是非公平模式。 非公平锁的效率为何高于公平锁呢?究竟公平与非公平有何区别呢? 首先,先简单从名字上来理解,公平锁就是保障了多线程下各线程获取锁的顺序,先到的线程优先获取锁,而非公平锁则无法提供这个保障。 看到网上很多说法说非公平锁获取锁时各线程的的概率是随机的,这也是一种很不确切的说法。 非公平锁并非真正随机,其获取锁还是有一定顺序的,但其顺序究竟是怎样呢?先看画了半天的图: 公平
分类: 其他 发布时间: 12-03 20:34 阅读次数: 0

《基于改进遗传算法智能组卷系统的研究 》

一、基本信息 标题:《基于改进遗传算法智能组卷系统的研究 》 时间:2013 来源: 电子科技大学硕学位论文 关键字:智能组卷,遗传算法,收敛性,算子,适应度函数 二、研究内容 内容:基于对组卷问题约束条件的分析,建立试卷矩阵数学模型,进而提出可以 存储试卷各种属性指标和适应值的编码方法,可以较好的避免重复计算适应值, 同时,为避免解码过程和提高运算效率,将试题转换为遗传算法的基因。为避免组卷过程中的知识点冲突,改进了遗传算法,提出了针对变异算子 的分段多点变异策略和针对杂交算子的一种分段多点
分类: 其他 发布时间: 12-03 20:34 阅读次数: 0

tzoj1510 Common Subsequence(最长公共子序列LCS模板)

时间限制(普通/Java):1000MS/10000MS 内存限制:65536KByte 描述 A subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = <x1, x2, ..., xm> another sequence Z = <z1, z2, ..., zk> is a subsequence of X
分类: 其他 发布时间: 12-03 20:34 阅读次数: 0

实现类数组转化成数组(DOM 操作获得的反正元素值是一个类数组)

目标 实现类数组转化成数组 实例 链接地址 使用方法 const foo = document.querySelectorAll('.result') //链接地址输入控制台输入这行代码 const test = foo.slice() // 此行代码会报错,因为 foo 是一个类数组,不能使用数组的方法 解决 ES6 提供在数组中提供了Array.from 把类数组转化成数组 const foo = document.querySelectorAll('.result') //链接地址
分类: 其他 发布时间: 12-03 20:34 阅读次数: 0

Redis 入门到分布式 (二)API的理解和使用

内容: 通用命令 单线程架构 数据结构和内部编码 一、常用的通用命令: keys 计算所有的键 dbsize 获取redis的长度 exists key 判断键的存在与否 del key [key ...] 删除指定键的值 expire key seconds 对key做定时操作 type key 1、keys 1)用法1: 2)用法2: 说明: keys命令一般不在生产环境使用 2、dbsize: 3、exists: 4、del: 5、expire、ttl、persist 演示: 6、typ
分类: 其他 发布时间: 12-03 20:34 阅读次数: 0

python之面向对象练习

面向对象封装案例 01封装 封装是面向对象编程的一大特点 面向对象编程的第一步-----将属性和方法封装到一个抽象的类中 外界使用类创建对象,然后让对象调用方法 对象方法的细节都被封装在类的内部,在对象的方法内部,是可以直接访问对象的属性的! 同一个类创建的多个对象之间,属性互不干扰 一个对象的属性可以是另外一个类创建的对象 定义没有初始值的属性 在定义属性时,如果不知道设置什么初始值,可以设置为None None关键字表示什么都没有,表示一个空对象,没有方法和属性,是一个特殊的常量,可以将N
分类: 其他 发布时间: 12-03 20:34 阅读次数: 0

JavaWeb_(Mybatis框架)使用Mybatis对表进行增、删、改、查操作_二

  原有基础上,创建HelloMyBatis.java、HelloMyBatis2.java、HelloMyBatis3.java、HelloMyBatis4.java、HelloMyBatis5.java分别为     a)通过ID去查询一个用户 package com.Gary.test; import java.io.IOException; import java.io.InputStream; import org.apache.ibatis.io.Resources; impo
分类: 其他 发布时间: 12-03 20:34 阅读次数: 0

JavaWeb_(Mybatis框架)主配置文件介绍_四

MyBatis 主配置文件SqlMapConfig.xml说明:(注意顺序)  官方博客:传送门 1、properties(读取配置文件) 2、settings(全局配置参数) 3、typeAliases(类型别名) 4、typeHandlers(类型处理器) 5、objectFactory(对象工厂) 6、plugins(插件) 7、environments(环境集合属性对象,与Spring框架整合后Say Good Bye)   a)environment(环境子属性对象)   b)tra
分类: 其他 发布时间: 12-03 20:34 阅读次数: 0

Java并发编程 (十) 多线程并发拓展

一、死锁 1、死锁的定义 所谓的死锁是指两个或两个以上的线程在等待执行的过程中,因为竞争资源而造成的一种互相等待的现象。若不受外力作用,他们都将无法推进下去。此时,处于系统中所处的状态就是死锁。 2、发生死锁所必须具备的条件: 互斥条件:它是指进程对所分配的资源进行排他性的使用,在一定时间内,某资源只由一个进程在用,如果此时还有其他进程请求资源,请求者只能等待。直到占有资源的进程用完或释放之后才可以继续使用。 请求和保持条件:它是指进程已经保持了至少一个资源,又提出了新的资源请求,该资源已被其
分类: 其他 发布时间: 12-03 20:34 阅读次数: 0

JavaWeb_(Mybatis框架)Mapper动态代理开发_三

  MyBatis Mapper动态代理开发4+1 (4大原则+1注意):     1、接口方法名需要与mapper.xml的要调用的sql语句的id一致;     2、接口的形参类型需要与mapper.xml parameterType一致;     3、接口的返回值需要与mapper.xml resultType一致;     4、mapper.xml中namespace要与接口的全包名一致;     5、注意mapper动态代理开发中,根据返回值类型来自动选择;   在Dao层开发,需要
分类: 其他 发布时间: 12-03 20:34 阅读次数: 0

Redis 入门到分布式 (三) Redis客户端的使用

一、Java客服端:jedis 获取Jedis Jedis基本使用 Jedis连接池使用 1、Jedis是什么? Jedis是官方提供的一个客户端,用于对redis进行操作。遵循redis提供的协议,各种语言都有对应的客户端。 2、Jedis的maven依赖: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version
分类: 其他 发布时间: 12-03 20:34 阅读次数: 0