自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 合并石子问题

在一个操场上一排地摆放着N堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。计算出将N堆石子合并成一堆的最小得分。这道题目就是标准的区间dp定义dp[i][j]表示(i,j)合成为一堆的得分是多少显而易见,求的结果就是dp[0][n-1] 状态初值是dp[i][i]=0那么转移方程是什么?在将(i,j)这个大区间变成小区间的过程不是一蹴而就的,显然可以划分为若干子任务。

2024-01-30 21:27:18 263

原创 【无标题】

同学们,并查集是一种常用的数据结构,它可以高效地处理一些不交集的集合合并问题,比如检测图中的连通分量。今天我们就来学习一下并查集的相关知识。

2023-08-04 14:35:17 55

原创 Topk问题

题目描述从n个未排序的数中得到的最大的k个数,称为TopK问题。(最小的k个数做法也相似)也可能是这样的描述:给定 100 个 int 数字,在其中找出最大的 10 个;给定 10 亿个 int 数字,在其中找出最大的 10 个(这 10 个数字可以无序);给定 10 亿个 int 数字,在其中找出最大的 10 个(这 10 个数字依次排序);给定 10 亿个不重复的 int 数字,在其中找出最大的 10 个;给定 10 个数组,每个数组中有 1 亿个 int 数字,在其中找出最大的 10

2022-02-22 19:43:59 313

原创 5-Spring-AOP-基于注解

Spring-AOP-基于注解文章目录Spring-AOP-基于注解一. 介绍1.1 准备工作1.2 编写增强类1.3 配置切入点1.4 测试结果一. 介绍AOP 是面向切面编程,是一种思想,以一种横向抽取的机制,取代了传统的纵向继承的重复性代码编写方式(性能监控、事务管理、安全检查、缓存、日志)1.1 准备工作开启注解功能<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http:

2021-10-11 19:38:09 138

原创 2-java集合-集合与数组转化

java集合-集合与数组转化文章目录java集合-集合与数组转化一. 集合转化数组二. 数组转化为集合三. 如何正确使用asList1. 手动实现工具类2.一. 集合转化数组核心方法:对象.toArray()Object[] arr = list.toArray();String[] strs = list.toArray(new String[0]);// 参数用于说明转为什么数组// 细节,方法二中,如果参数数组可用,即长度足够存放集合的所有元素,则使用该数组// 如果数组不可用,则自

2021-10-10 22:42:38 373

原创 1-java基础知识学习摘要

JVM启动时的内存划分栈内存:运行所有方法的。方法压栈或弹栈。也会存基础类型的变量、对象的引用变量。**回收:**当超过变量的作用域后,会自动释放,该空间即可以另作他用堆内存:所有使用new 关键字创建的均放置于其中;**回收:**由jvm gc来回收方法区:又会划分为若干区域存放class文件的区域、常量池(如final)、静态区(static)等本地方法区:自己的程序无法直接使用,一般是 jvm 加载被 native 修饰方法所在的区域寄存器:给cpu使用的堆空间开辟的空间都会有默认初始

2021-10-10 22:41:56 101

原创 8-java反射-基础反射知识

java反射-基础反射知识文章目录java反射-基础反射知识反射1. 反射示意图2. 获取 Class对象 的方法2.1 getClass方法2.2 class属性2.3 forName方法3. CLass对象的创建时间4. 使用Class对象创建类的对象5. 获取CLass对象的内容5.1 获取构造方法面试小技巧5.2 获取成员变量5.3 获取方法反射反射就是把Java类中的各个成分映射成一个个的Java对象。即在运行状态中,对于任意一个类,都能够知道这个类的所以属性和方法;对于任意一个对象,都

2021-10-10 22:37:29 100

原创 3-Spring-基于注解配置bean

Spring-基于注解配置bean文章目录Spring-基于注解配置bean一. 基于注解配置bean1.1 准备工作1.2 使用注解1.3 分层注解1.4 @Component起别名二. Bean属性依赖注入(注解方式)2.1 简单数据注入2.2 复杂类型注入2.3 注解配置bean 的初始化和销毁方法2.4 注解配置 bean 的作用域三. spring整合其他框架,举例junit使用注解省去new context对象总结:配置常见注解一. 基于注解配置bean使用注解可以提高开发效率,但是维

2021-10-10 22:06:33 92

原创 2-Spring-基于xml配置bean

Spring-基于xml配置bean文章目录Spring-基于xml配置bean一. Bean实例化的4种方式1.1 无参数构造方法(开发最常用)1.2 静态工厂方法1.3 实例工厂方法1.4 FactoryBean方式(Spring底层使用较多)1.5 FactoryBean 与 BeanFactory区别二. Bean相关知识2.1 Bean的作用域2.2 Bean的生命周期2.3 Bean的属性注入2.3.1 构造方法2.3.2 setter方法注入2.3.3 集合属性注入xml配置中的标签及属性b

2021-10-10 19:09:23 171

原创 1-Spring-基础知识

Spring-基础知识文章目录Spring-基础知识一. 简介1.1 优点1.2 核心技术二. IOC技术2.1 搭建环境2.2 IOC概念2.3 IOC快速入门2.4 DI依赖注入一. 简介Spring 解决的是业务逻辑层与其他层的松耦合问题,将面向接口的思想贯穿整个系统应用。也有人称为粘合剂,用于粘合其余别的层的框架。web程序开发分层一般如下:#mermaid-svg-zguFqVJzyzXpYNOh .label{font-family:'trebuchet ms', verdana,

2021-10-10 10:13:16 117

原创 7-java零碎知识点-junit、url、注解

java零碎知识点-junit、url、注解文章目录java零碎知识点-junit、url、注解java零碎知识点junitURL、URI注解注解细节常见注解java零碎知识点这里记几个java零碎知识点。junit在测试的方法前,加注解 @Test,可以直接进行测试。也可以给其他方法前加@Before, 在@Test之前执行@After, 在@Test之后执行@BeforeClass, 在类加载之前执行@AfterClass, 在程序结束后执行坑:仅可用于非s

2021-10-08 22:32:07 158

原创 3-java集合-集合工具类

java集合-集合工具类文章目录java集合-集合工具类集合工具类Collections.addAllCollections.enumeration(list)Collections.reverse集合工具类这里记几个集合工具类中的方法。Collections.addAll该方法一次性添加多个数据进入容器Collections.addAll(list, 数据1, 数据2)Collections.enumeration(list)该方法将 list/set 转化为 enumeration

2021-10-08 22:08:18 65

原创 6-java多线程-单例懒汉式的多线程问题

java多线程-单例懒汉式的多线程问题文章目录java多线程-单例懒汉式的多线程问题一. 单例懒汉式的多线程问题解决办法1:在对外方法上加锁解决办法2:在if判断前加锁解决办法3:多加一重判断一. 单例懒汉式的多线程问题单例模式(懒汉式)代码如下,记忆方法:私有本类构造创建静态对象对外提供方法,获取本类对象通过 类名.方法名 获取本类的唯一对象class Single{ private Single(){}; private static Single instance = nu

2021-10-08 21:56:07 159

原创 4-java多线程-基础多线程知识

java多线程-基础多线程知识文章目录java多线程-基础多线程知识一、搬水问题二、创建线程的方法1.将类声明为Thread的子类2. 类实现Runnable接口三、线程其他技术1.同步的锁2.面试题3. 死锁4. 线程安全相关的类5. 线程优先级6. 线程组7. 守护线程8. 线程中的其他方法9. 定时器一、搬水问题搬水问题,现在有100桶水,找多个人去搬,每个人的工作都是一样的,所以可以使用多线程,基本代码如下:class Water{ private int num = 100; pr

2021-10-08 21:40:50 90

原创 5-java多线程-生产者消费者模型

java多线程文章目录java多线程一、生产者消费者模型二、生产者消费者模型的安全问题1.同步代码块三、生产者消费者模型的同步问题四、生产者消费者模型的多生产多消费问题五、lock+condition解决生产者消费者模型总结一、生产者消费者模型这里采用的是最基本的生产者消费者模型,生产者生产资源,消费者消耗资源。隐蔽知识点:生产者消费者模型一般不使用集合来模拟,这是因为集合会无限扩容,使用数组可以很好的展现效果基本模型搭建如下:还未添加线程的同步机制// 资源类class Resource

2021-10-07 10:22:34 103

原创 p5-哈希表+有序表+链表

p5-set+map+TreeSet+TreeMapset与mapset与map区别仅在于有无伴随数据,其他部分是相同的增 put, 删 remove, 改put, 查get; 时间是常数级别,但可能是一个比较大的常数哈希表内放入的是基础类型,如Integer、String(虽然String不是基础类型,但也会这样操作),是按值传递,哈希表会拷贝一份进去,内存占用就是该数据本身。哈希表内放的不是基础类型,如自定义的Node、Student,是按引用传递,哈希表不会拷贝东西进去,而是记录内存地址,

2021-09-02 23:00:22 108

原创 p4-堆+桶排序

p4 堆排序、桶排序、排序总结堆堆是一个完全二叉树。用数组对应完全二叉树,则i位置左孩子为2*i+1,右孩子为2*i+2,父为(i-1)/2。堆结构重要性大于堆排序大根堆小根堆对于每一颗子树,其最大值都是头节点的值。构建堆的过程:heapInsert对于每一个新节点,来了之后,递归的和自己父亲比较,比父亲大则交换,直到到头或者没父亲大了。时间复杂度O(logN)调整堆:heap对于一个需要调整的节点(如删除堆顶时,将堆顶与堆尾进行交换,此时堆顶需要调整),要寻找其左右孩子,获得大的进行交换

2021-09-02 22:59:51 115

原创 p3-归并+快排

p3 O(NlogN)的排序master公式计算递归方法的时间复杂度如果递归行为满足,母递归行为每次均拆分为N/b规模的子递归行为,而且总额外时间复杂度(除去调用子问题)为O(N^d),那么总问题的时间复杂度即可以计算。公式如下:T(N) = a*T(N/b) + O(N^d)log(b,a) > d -> O(N ^ log(b,a))log(b,a) = d -> O(N ^ d * log(N))log(b,a) < d -> O(N ^ d)注:log

2021-09-02 22:59:20 65

原创 Integer.valueOf和Integer.parseInt区别

在日常开发工作中,我们经常需要将一个字符串值转换成整型值,这个时候我们可以选择Integer.valueOf和Integer.parseInt两个选择.接下来我们分析下这两个方法的区别.Integer.valueOf返回值是Integer类型.Integer.parseInt返回值是int类型.而且,在Integer类中还有一个内部的缓存类IntegerCache,它默认缓存了[-128, 127]的Integer值.Integer.parseInt很简单,它是将一个字符串转成10进制的int数值

2021-09-01 12:46:42 423

原创 交换两个空间的值,不依赖第三个空间的方法

交换两个空间的值,不依赖第三个空间的方法通常交换两个空间的值,需要借助第三方空间,如下代码:int c = b;b = a;a = c;但是可以采用运算,来实现不依赖第三方空间进行交换。我们假设a的值是x, b的值是y,可以看一下过程// 可能溢出a = a + b; // a = x + yb = a - b; // b = x + y - y = xa = a - b; // a = x + y - x = y或者是异或操作a = a ^ b; // a = x ^ yb =

2021-08-05 22:35:57 249

原创 python学习中遇到的函数

学习python中遇到的函数最近在维护升级工具WANA,由于这个工具对效率要求不明显,所以使用python开发,而此前我对python并没有太过深入的学习与使用,故这里将学习过程中遇到的有趣知识点总结如下1.enumerate() 函数enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。语法:以下是 enumerate() 方法的语法:enumerate(sequence, [start=0])

2020-08-27 15:57:26 452

原创 读研整活笔记(3):阅读论文 WANA Symbolic Execution of Wasm Bytecode...

读研整活笔记2:调研编译器soll需求理解0.摘要0.标题1.摘要2.关键词3.个人理解一.介绍1.摘要二.WASM和智能合约的背景2.1.WASM2.2.EOSIO智能合约2.3.以太坊智能合约三.智能合约漏洞3.1 EOSIO智能合约漏洞3.1.1 Fake EOS Transfer需求理解书接上回,上回我们整活调研了编译器soll,这回我们要开始阅读论文啦。要求如下:最近会让你读一下上级学长的论文,开始读代码后面会让你做wasm字节码的符号执行和漏洞检测你先对着论文,读读这个代码,尝试跑跑

2020-08-20 14:51:33 933

原创 读研整活笔记2:调研编译器soll

读研整活笔记2:调研编译器soll需求理解一.soll编译器1.什么是soll需求理解        书接上回,上回我们整活调研了编译器solang,这这回我们调研一下同功能的soll编译器,要求如下:soll是我们用过的另一个编译器你也可以一起对比着试试看看两者的成熟度最终的目标,是看到那个编译器先能支持大规模的以太坊合约编译到EWASM。        从要求的描述中,应当将它解析成以下几个小任务:下载

2020-08-01 17:38:43 635

原创 java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter解决方案

今天在启动项目的时候,报了如下错误ERROR c.r.f.w.e.GlobalExceptionHandler - [handleException,83] - Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverterorg.springframework.web.util.NestedServletException: Handler dis

2020-07-06 22:38:52 1043

原创 读研整活笔记1:调研编译器solang

读研整活笔记1:调研编译器solang需求理解一.solidity 和wasm1.solidity2.wasm3.个人理解二.solang编译器1.简介2.安装与使用需求理解这是读研整的第一个活,要求如下调研一下编译器solang,从solidity 到wasm,是不是真的好用。得找一些例子,下载一些solidity合约代码,先用以太坊官方编译器编译执行能跑。然后试试solang是否能成功编译。这个工具在开发状态,可能不够好用。整活的前提是充分理解自己要干的事。在我自己对区块链了解几乎一无所

2020-07-04 14:10:22 842 1

原创 mybatis逆向工程的selective和example区别

mybatis逆向工程的selective简介insertSelective和insertupdateByExample相关updateByExampleupdateByExampleSelectiveupdateByPrimaryKey相关updateByPrimaryKeyupdateByPrimaryKeySelectiveupdateByPrimaryKey与updateByExample...

2020-04-05 12:05:21 806

原创 mybatis学习笔记

mybatis学习中需要注意的地方一级目录要点1要点2:使用mybatis动态代理三级目录一级目录要点1使用sqlSession对数据库进行删、改、增的操作时,一定要将参数设为true;如下:SqlSession sqlSession = factory.openSession(true);要点2:使用mybatis动态代理1.首先把接口写好,如IUserDao.java2.把ma...

2020-03-30 01:17:19 270

原创 idea使用小技巧

idea使用小技巧快捷键快捷生成函数三级目录快捷键快捷生成函数alt+insert可以快速生成get、set方法;快速生成toString方法三级目录

2020-03-29 00:23:25 516

原创 学习mybatis时遇到的问题

学习mybatis时遇到的问题前言mybatis错误1:Error : java 不支持发行版本5错误2:Cause: java.lang.ClassNotFoundException: Cannot find class: ${driver}错误3:MySql :Could not create connection to database server.错误4:Cause: java.sql....

2020-03-28 23:54:12 518

原创 学习高级c课程中遇到的函数

学习高级c课程中遇到的函数最近在学习高级c语言,其中有一些函数值得记录。输入输出相关首先是输入输出相关的函数int sprintf(char *buffer, const char *format, [ argument] …)该函数功能为把格式化的数据写入某个字符串缓冲区。返回值为写入的字符个数。如: j = sprintf(buf, &amp;quot;%d &amp;quot;, i);j 的值即为2;...

2018-12-16 14:53:28 104

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除