自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (1)
  • 收藏
  • 关注

原创 java多线程:volatile防止指令重排

单例模式之双重检验:为什么要用volatile?单例模式代码:class Singleton { private static volatile Singleton INSTANCE; private Singleton(){} public int m=5; public static Singleton getInstance() throws InterruptedException { if(INSTANCE==null){

2022-04-02 23:15:55 657 3

原创 java多线程

java多线程,from javaguide

2022-03-31 17:57:06 808

原创 linux 常用命令(ubuntu)

图形界面切换到命令行模式ctrl+alt+F1(F1~F6)切换桌面模式ctrl+alt+F7关闭图形界面sudo systemctl set-default multi-user.target打开图形界面模式sudo systemctl set-default graphical.target端口服务查看查看已经连接的服务端口(ESTABLISHED)netstat -a查看所有的服务端口(LISTEN,ESTABLISHED)netstat -ap查看指定端口,可以结

2022-03-31 14:43:56 1036

原创 Springboot

学习还是推荐去看狂神的博客,那边很详细Springboot入门pom.xml新建项目就有的,springboot为我们简约了非常多的配置,甚至是版本,都是自动管理的,我们导入依赖时不需要指定版本,直接从父pom继承。pom.xml包含了一个个starter启动器,开启了一个启动器,就会把相关依赖全部导入。官方提供的starters<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache

2022-03-08 21:49:15 611 1

原创 SSM整合(都是抄的,看了半个月也不会自己配,这里记录自己配置时遇到的问题)

搭建步骤这里将数据库连接池,springmvc,mybatis,service分开创建然后import整合到applicationContext.xml新建project导包创建外部文件db.properties配置spring-dao.xml:a.关联数据库文件b.配置数据库源c.配置bean sqlSessionFactoryd.扫描dao包,动态实现Dao接口注入到spring容器中配置log4j.properties日志 引入到后面的mybatis-config.xml配置m

2022-03-05 16:54:11 681

原创 SpringMVC

对比学习,先回顾不用SpringMVC怎么做web开发一、Servlet步骤新建maven项目,删除src新建module springmvc-01-servlet ,右键增添框架支持web(这时会出现web WEB-INF…)pom.xml 导包新建HelloServlet.java(请求转发,页面传参)配置web.xml (配置servlet,浏览器请求路径)pom.xml<?xml version="1.0" encoding="UTF-8"?><proje

2022-03-05 12:29:01 85

原创 Spring 面向切面编程(AOP)

什么是AOP面向切面编程(方面),利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。通俗描述:不通过修改源代码方式,在主干功能里面添加新功能底层原理两种情况 动态代理:第一种 有接口情况,使用 JDK 动态代理:创建接口实现类代理对象,增强类的方法第二种 没有接口情况,使用 CGLIB 动态代理:创建子类的代理对象,增强类的方法jdk动态代理创建接口,定义方法 UserDao.javapubli

2022-03-02 20:53:00 209

原创 Spring入门(IOC)

什么是IOC?IOC 容器具有依赖注入功能的容器,它可以创建对象,IOC 容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。通常new一个实例,控制权由程序员控制,而"控制反转"是指new实例工作不由程序员来做而是交给Spring容器来做。在Spring中BeanFactory是IOC容器的实际代表者。原理xml解析,工厂模式,反射小结:IOC就是将Bean(对象)的创建和管理交给Spring,通过1.解析xml获取类名和属性方法 2.通过反射获取类 3. newInstanc

2022-03-02 15:21:55 159

原创 Mybatis缓存

1、缓存是什么?存在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。2、为什么使用缓存?减少和数据库的交互次数,减少系统开销,提高系统效率。3、什么样的数据能使用缓存?经常查询并且不经常改变的数据。Mybatis缓存MyBatis系统中默认定义了两级缓存:一级缓存和二级缓存默认情况下,只有一级缓存开启。(SqlSession级别的缓存,也称为本地缓存

2022-03-02 11:29:35 49

原创 Mybatis(动态sql: if set where foreach )

mybatis动态sql注意点:set 最后没有","传入map 或者传入对象类型 都会自动映射foreach本质还是拼接sql语句复杂的时候 if set这些(trime)也要结合特殊标记来使用本案例中,出现create_time和createTime名称不一致的情况,教学视频使用<setting name="mapUnderscoreToCamelCase" value="true"/>自动识别驼峰命名,这里使用的是查询使用as,set使用 create_time=#

2022-03-01 23:35:26 169

原创 Mybatis日志

第一步 导包<!-- https://mvnrepository.com/artifact/log4j/log4j --><dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version></dependency>第二步 在mybatis-co

2022-02-28 12:31:59 480

原创 MyBatis映射

一 解决属性和表的字段不一致的两种方法1. select xx as yy2. resultMap column propertyresultMap 元素是 MyBatis 中最重要最强大的元素。它可以让你从 90% 的 JDBC ResultSets 数据提取代码中解放出来,并在一些情形下允许你进行一些 JDBC 不支持的操作。实际上,在为一些比如连接的复杂语句编写映射代码的时候,一份 resultMap 能够代替实现同等功能的数千行代码。ResultMap 的设计思想是,对简单的语句做到零配

2022-02-28 10:34:56 153

原创 SqlSessionFactoryBuilder,SqlSessionFactory和SqlSession作用域(面试可能用到)

SqlSessionFactoryBuilder这个类可以被实例化、使用和丢弃,一旦创建了 SqlSessionFactory,就不再需要它了。 因此 SqlSessionFactoryBuilder 实例的最佳作用域是方法作用域(也就是局部方法变量)。SqlSessionFactorySqlSessionFactory 一旦被创建就应该在应用的运行期间一直存在,没有任何理由丢弃它或重新创建另一个实例。 使用 SqlSessionFactory 的最佳实践是在应用运行期间不要重复创建多次。因此

2022-02-28 10:20:47 389

原创 MyBatis入门配置

mybatis 入门配置

2022-02-27 12:19:29 510

原创 设计模式(单例模式)

单例模式几种实现的优缺点懒汉式(静态变量)public class SingletonTest1 { public static void main(String[] args) { Singleton instance = Singleton.getInstance(); Singleton instance1 = Singleton.getInstance(); System.out.println(instance==instance1);

2022-02-24 17:46:14 170

原创 二叉树的最小深度(遍历)

leetcode链接题目:二叉树的最小深度给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。输入:root = [3,9,20,null,null,15,7]输出:2示例 2:输入:root = [2,null,3,null,4,null,5,null,6]输出:5第一次做的时候是11.11, 当时做了好一会,用的层次遍历,今天重新刷了一遍,完全凭感觉,递归就做出来了。思路也不是很清晰,就是ac了层次遍历cl

2021-12-09 21:31:25 365

原创 省份数量(深度优先遍历、图)

leetcode链接求图的连通分量个数题目有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。返回矩阵中 省份 的数

2021-12-01 14:24:50 188

原创 所有可能的路径(深度优先搜索、图)

leetcode链接分享原因:图的遍历 一直没怎么练过 目前的理解 就是回溯题目:给你一个有 n 个节点的 有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特定顺序)二维数组的第 i 个数组中的单元都表示有向图中 i 号节点所能到达的下一些节点,空就是没有下一个结点了。译者注:有向图是有方向的,即规定了 a→b 你就不能从 b→a 。class Solution {public: vector<vector<int>> r

2021-11-29 11:42:55 582

原创 位运算(最大单词长度乘积)

题目:leetcode链接给定一个字符串数组 words,找到 length(word[i]) * length(word[j]) 的最大值,并且这两个单词不含有公共字母。你可以认为每个单词只包含小写字母。如果不存在这样的两个单词,返回 0。示例 1:输入: [“abcw”,“baz”,“foo”,“bar”,“xtfn”,“abcdef”]输出: 16解释: 这两个单词为 “abcw”, “xtfn”。示例 2:输入: [“a”,“ab”,“abc”,“d”,“cd”,“bcd”,“abc

2021-11-17 21:30:17 110

原创 双指针(剑指 Offer 57. 和为s的两个数字)

这题我觉得难在理解为什么双指针不会漏解:leetcode链接题目:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。示例 1:输入:nums = [2,7,11,15], target = 9输出:[2,7] 或者 [7,2]示例 2:输入:nums = [10,26,30,31,47,60], target = 40输出:[10,30] 或者 [30,10]class Solution {public:

2021-11-13 14:35:49 55

原创 C++、map使用(数组中重复的数字)

C++的map是真难用leetcode链接题目:找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3第一想法是循环,但是一直不会用C++的map 就试了下class Solution {public: int findRepeatNumber(vec

2021-11-12 21:17:59 923

原创 动态规划、背包(零钱兑换)

题目leetcode链接给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。你可以认为每种硬币的数量是无限的。示例 1:输入:coins = [1, 2, 5], amount = 11输出:3解释:11 = 5 + 5 + 1示例 2:输入:coins = [2], amount = 3输出:-1示例 3:输入:coins = [1],

2021-11-09 14:42:28 210

原创 子集(回溯)

leetcode链接给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0]输出:[[],[0]]class Solution {public: vector<vector<int>> res;

2021-11-08 11:28:48 83

原创 回溯(全排列)

题目:全排列原题在这里就没想过能做出来,写着写着就好了给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。示例 1:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2:输入:nums = [0,1]输出:[[0,1],[1,0]]示例 3:输入:nums = [1]输出:[[1]]思路:依次以每个元素作为排列的第一个元素,这个元素加入之后,

2021-11-04 23:02:41 140

翻译 动态规划、三指针(丑数||)

题目:丑数||给你一个整数 n ,请你找出并返回第 n 个 丑数 。丑数 就是只包含质因数 2、3 和/或 5 的正整数。原文在这里示例 1:输入:n = 10输出:12解释:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。示例 2:输入:n = 1输出:1解释:1 通常被视为丑数。class Solution {public: int nthUglyNumber(int n) { vector<int

2021-11-02 20:58:18 72

翻译 贪心、双指针(盛最多水的容器)

题目:盛最多水的容器平时做题少,双指针的问题遇到过一两次,在贪心里是个比较好的思路吧,记下来原文在这里给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水

2021-11-02 15:48:26 78

原创 深度优先遍历、回溯(组合总和|||)

题目:组合总和|||找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。解集不能包含重复的组合。示例 1:输入: k = 3, n = 7输出: [[1,2,4]]示例 2:输入: k = 3, n = 9输出: [[1,2,6], [1,3,5], [2,3,4]]class Solution {public: vector<vector<int>> res;

2021-11-01 21:50:21 106

原创 回溯、递归(组合)

题目:组合给定一个无重复元素的正整数数组 candidates 和一个正整数 target ,找出 candidates 中所有可以使数字和为目标数 target 的唯一组合。candidates 中的数字可以无限制重复被选取。如果至少一个所选数字数量不同,则两种组合是唯一的。对于给定的输入,保证和为 target 的唯一组合数少于 150 个。示例 1:输入: candidates = [2,3,6,7], target = 7输出: [[7],[2,2,3]]示例 2:输入: candi

2021-11-01 20:01:17 58

翻译 搜索、回溯(组合)

题目:组合leetcode链接这种题真的好厉害!给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。示例 1:输入:n = 4, k = 2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]示例 2:输入:n = 1, k = 1输出:[[1]]class Solution {private: vector<vector<int>> result;

2021-10-31 21:46:28 72

翻译 动态规划(打家劫舍)

分享原因:这题自己做出来过,但是很复杂,看了官方写的特别好,记一下题目:原文链接你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。

2021-10-23 23:34:33 42

原创 异构图如何使用attention

@[图神经网络](dgl 异构图,如果加入attention)本次测试使用两种类型节点 句子节点,单词节点多头注意力参考这里import torchimport dglimport dgl.function as fnimport torch.nn as nnimport torch.nn.functional as Fdef generate_empty_graph(num): empty_graphs=[] for i in range(num): g

2021-10-18 19:08:18 169

原创 图神经网络库:dgl,分割子图问题

将一个图划分为多个子图,使用dgl.node_subgraph()分割的子图会多出 edges_schemes:{“_ID” …}举例:import dglimport torchsrc=[0,1,2,3,4,5]dst=[1,2,3,0,5,4]feats=torch.tensor([[0,0,0],[1,1,1],[2,2,2],[3,3,3],[4,4,4],[5,5,5]])g=dgl.graph((torch.tensor(src),torch.tensor(dst)))g.

2021-09-10 21:18:54 1247

原创 题目:对称二叉树(递归)

leetcode原版题目:思路:如果树本身为空 那么就是对称的,如果有两个非空子树,分别成为左树和右树,如果镜像对称的话,那么左树的左子树和右树的右子树节点相同且其子树dui,且左树的右子树和右树的左子树节点相同...

2021-09-02 21:09:02 42

翻译 题目:买卖股票的最佳时机 II(动态规划、贪心)

题目:给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: prices = [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。随后,在第 4 天(股票价格

2021-09-02 19:45:41 96

翻译 题目:买卖股票的最佳时机(贪心)

leetcode原版题目:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5

2021-09-02 15:46:16 145

翻译 题目: 最佳买卖股票时机含冷冻期(动态规划)

leetcode原版题目:给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。​设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2]输出: 3解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]思路与算法:我们用 f[i]f[i] 表示第 ii 天结束

2021-09-01 23:00:35 64

翻译 题目:大礼包(深度优先搜索)

leetcode原版解析题目: 在商店中, 有许多在售的物品。 然而,也有一些大礼包,每个大礼包以优惠的价格捆绑销售一组物品。 现给定每个物品的价格,每个大礼包包含物品的清单,以及待购物品清单。请输出确切完成待购清单的最低花费。 每个大礼包的由一个数组中的一组数据描述,最后一个数字代表大礼包的价格,其他数字分别表示内含的其他种类物品的数量。 任意大礼包可无限次购买。 示例 1: 输入: [2,5], [3,2], [[3,0,5],[1,2,10]] 输出: 14 解释

2021-09-01 20:20:08 128

翻译 题目:不同路径(动态规划)

leetcode不同路径题目描述:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?思路与算法:我们用 f(i, j)f(i,j) 表示从左上角走到 (i, j)(i,j) 的路径数量,其中 ii 和 jj 的范围分别是 [0, m)[0,m) 和 [0, n)[0,n)。由于我们每一步只能从向下或者向右移动一步,因此要想走到 (i,

2021-08-31 23:02:45 137

翻译 题目:使用最小花费爬楼梯(动态规划)

使用最小花费爬楼梯动态规划问题描述:数组的每个索引作为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例 1:输入: cost = [10, 15, 20]输出: 15解释: 最低花费是从cost[1]开始,然后走两步即可到阶梯顶,一共花费15。示例 2:输入: c

2021-08-31 22:45:47 108

翻译 题目:课程表(广度优先遍历)

LeetCode课程表广度优先遍历方法 【C++】 东华oj 第71题class Solution {private: vector<vector<int>> edges; vector<int> indeg;public: bool canFinish(int numCourses, vector<vector<int>>& prerequisites) { edges.resize(

2021-08-31 21:44:52 77

C++编辑工具

好用的C++编辑器 内置检测bug工具,功能强大。 不用注册 下载即用 简单方便

2018-09-20

空空如也

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

TA关注的人

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