自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2021-03-21 腾讯春招实习笔试算法题记录

题目一AC了,代码:import java.util.*;class ListNode { int val; ListNode next = null; public ListNode(int val) { this.val = val; }}class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public Tr

2021-03-21 22:00:36 903 2

原创 2021-03-06 阿里春招实习笔试算法题记录

题目一题目描述小明现在手里有3种数字卡片,卡片上的数字分别为1,2,3,3种数字卡片每种都有若干张,他想将这些数字放入有一个N*3的方格中,每个方格中只能放入一张卡片,且要求相邻的上下左右方格不能放入同一种数字的卡片,现在问你有多少种可能的放入方案。输入描述:每个文件输入第一行输入一个整数T(1<=T<=500),代表有T组测试数据;接下来T组,每一组输入一个整数n(1<=n<=100000);输出描述:对于每一组测试数据,输出一个答案代表可能的方案数,由于答

2021-03-06 20:37:51 14619 37

原创 2021-03-04 携程实习笔试算法题记录

携程实习笔试算法题记录总共2道算法题120分钟第一题表达式求值这一类问题一直没有去做,知道要用Stack去做但是不会。。。后续需要加强补。第二题因为分割的数组是由连续子数组组成,所以可以用dfs来遍历所有情况private static int res = -1;static int maxAmount(int[] packets, int n) { dfs(packets,n+1,0,0,Integer.MAX_VALUE); return res;}private sta

2021-03-04 20:35:50 1215 4

原创 docker部署各类环境大全

目录常用命令Rediselasticsearch、kibana、ik分词器常用命令1.镜像docker search xxx //搜索镜像docker pull xxx:版本号 //拉取镜像docker images //查看镜像docker rmi <镜像名或id> //删除docker tag <镜像名> <镜像名>:dev //设置标签docker build -t <镜像名> . //用Dockerf

2021-01-23 13:58:30 968

原创 Redis狂神说学习笔记

【狂神说Java】Redis视频p1-3 企业架构演进单机Mysql --> 多Mysql --> 主从复制,读写分离 --> 加入缓存 --> Mysql集群(数据分散在多个主从数据库集群中) --> NoSQL(解决各种爆发式增长的,不同的数据如定位,图片等,对MySQL数据库的压力)p4-6 NoSQL什么是NoSQL?NoSQL是非关系型数据库(Mysql属于关系型数据库,按照表格存储数据,行,列),用来存储个人信息,社交网络,地理位置等不需要固定格式的

2021-01-02 18:35:42 1401 2

原创 LeetCode: 位运算 题型知识点

LeetCode: 位运算 题型知识点与运算: &或运算: |异或运算: ^左移:分为带符号左移和无符号左移无符号左移:<< (相当于乘2)。低位补0 。带符号左移:<<< 。正数左移低位补0,负数左移低位补1。右移:分为带符号右移和无符号右移无符号右移:>> (相当于除2)。高位补0 。带符号右移:>>>。正数右移高位补0,负数右移高位补1。比如:4 >> 1,结果是2;-4 >> 1,结果是-2

2021-01-01 16:43:31 520

原创 BIO、伪异步IO通信模型的代码实现

本文主要包含:BIO通信(一请求一应答)模型的代码实现;线程池优化的伪异步IO通信模型;伪首先是BIO通信模型概念:BIO,NIO,AIO 总结BIO通信(一请求一应答)模型的代码实现:客户端:public class BIOClients { public static void main(String[] args) { //创建多个线程,模拟多个客户端连接服务端 for(int i = 0 ; i < 100 ; i++){

2020-12-22 15:33:39 424

原创 Java 数组和List操作以及转换

数组定义和初始化:int[] a = new int[]{1,2,3}; //一维int[][] b = new int[][]{{1,2,3},{1,2},{}}; //二维List定义和初始化:List<Integer> list = new ArrayList<>();List<List<Integer>> lists = new ArrayList<>();//一维数组初始化list.add(1);list.add

2020-12-20 19:21:28 519

原创 LeetCode: 记忆化 题型知识点

LeetCode: 记忆化 题型知识点记忆化通常用来以空间换取时间来优化算法性能。329. 矩阵中的最长递增路径(困难)本题是求图的最长递增路径DFS过程:在当前位置 (x,y) 上我们需要检查上下左右四个方向是否连通,如果都不连通说明是终点,则其长度为1;如果有连通,则长度为另外几个位置的最大长度+1;本题在单纯使用DFS的过程中会多次计算一个节点的长度,所以我们使用数组将搜索过的节点的最长递增路径保留下来,也就是记忆化的过程,这样我们每次遍历如果搜索过了则直接返回保存的答案即可。(DFS递归

2020-12-15 21:03:08 436

原创 LeetCode: 拓扑排序 题型知识点

解决有向无环图(DAG)的判断207. 课程表210. 课程表 II本题需要判断是否为有向无环图(DAG),主要思路是通过拓扑排序来判断。拓扑排序思路:对 DAG 的顶点进行排序,使得对每一条有向边(u,v),均有 u(在排序记录中)比 v 先出现即可。下面还用到了邻接表辅助,补充一下邻接表的概念,如下图以及对应的邻接表:解题方法,参考题解:拓扑排序+BFS原理:从入度为0的节点开始广搜,每次删除连接的边并维护入度和节点数,把入度更新为0的节点再次加入队列,直到队列为空(把删除的顺序连

2020-12-15 15:34:29 567

原创 注解和反射(狂神) 笔记

视频链接p1什么是注解:不是程序本身,可以对程序作出解释,但是区别于注释,注解可以写入参数,通过反射机制来获取所注解信息的访问。p2元注解:用来注解其他注解,有4个标准的meta-annotation:@Target、@Retention、@Documented、@Inherited,前两个常用。Target需要传入ElementType数组作为value表示使用范围,其中ElementType是一个枚举类enum,包括类、域、方法、参数等。Retention表示注解在什么地方有效,SO

2020-12-14 20:09:08 1348

原创 LeetCode: 并查集 题型知识点

并查集数据结构第一种使用数据构造并查集(简单情况下可以使用)://并查集public class UF { //记录连通分量数 private int count; //父节点,当parent[x]==x时,x为祖先节点 private int[] parent; //用来记录每个树"重量"的数组 private int[] size; //初始化构造函数,传入参数n为节点数 public UF(int n){ coun

2020-12-13 14:30:24 444

原创 java 集合的深拷贝

ArrayList 、 LinkedList等对象都可以用构造器传参的方式快速完成深拷贝。如:private List<List<Integer>> res = new ArrayList<>();private List<Integer> temp = new ArrayList<>();...res.add(new ArrayList<Integer>(temp)); //传入需要拷贝的目标集合即可...

2020-12-10 18:22:23 1343 2

原创 Mybatis视频教程学习记录

Mybatis视频教程学习记录狂神Mybatis视频教程Mybatis: 是一款优秀的持久层框架,优化了JDBC中的各种代码操作。p2小坑记录:在用数据库可视化界面(我用的是Navicat Premium)时运行sql语句需要在对应的数据库中右键新建查询即可。Mybatis核心配置文件中的url的useSSL要设置为false。最后一步出现初始化错误需要在maven配置文件中加上<!--在build中加resource防止我们的资源导出失败--><build>

2020-12-10 16:41:18 419

原创 用AQS自定义不可重入锁NoReentrantLock(附加一个消费者生产者模式应用案例)

本文内容参考自Java并发编程之美6.2.3章节。基于AQS自定义的不可重入锁://用AQS自定义同步器——不可重入锁NoReentrantLockpublic class NoReentrantLock implements Lock, java.io.Serializable { //内部类用于完成具体的工作 private static class Sync extends AbstractQueuedSynchronizer { //锁是否被持有

2020-12-08 17:06:07 427 1

原创 Linux基本常用命令分享

Linux基本常用命令分享切换目录cd usr: 切换到该目录下 usr 目录cd …:切换到上一层目录cd /: 切换到系统根目录cd ~:切换到用户主目录cd -: 切换到上一个操作所在目录目录修改mkdir 目录名称: 增加目录。ls -l: 查看目录信息。mv 目录名称 新目录名称(目录的新位置): 修改/移动目录的名称(改)。cp -r 目录名称 目录拷贝的目标位置: 拷贝目录,-r 代表递归拷贝 。注意:拷贝文件和压缩包时不 用写-r 递归。rm [-rf] 目录

2020-12-07 14:54:27 392

原创 LeetCode: 栈类 题型知识点

#栈# 知识点:java栈API学会使用存储下标的单调栈解决问题。如:739. 每日温度

2020-12-04 14:52:37 394

原创 LeetCode:排序类题型知识点

#排序# 知识点:八大排序算法:八大排序算法需要熟练掌握,这是基础。java自带的排序工具:PriorityQueue、Arrays.sort()复杂的排序题目一般分为两种情况:一种重点考各类排序的优点以及如何选择,这类题目需要手写排序,并根据题目要求作出改变,比如TopK问题使用快排的变种来解决等;另外一种只把排序作为一种工具,通常会同时考察贪心算法,我们可以直接调用优先队列或者Arrays.sort(),重写比较器来完成排序。...

2020-12-02 14:17:27 435

原创 Java自带的 Arrays.sort()排序方法分析

Java自带的 Arrays.sort()排序方法分析参考自Java的Arrays.sort()方法到底用的什么排序算法面对不同情况会使用插入排序,快速排序和归并排序。Arrays.sort()自定义比较方法代码如下(比较欧几里得距离):int[][] points;Arrays.sort(points, Comparator.comparingInt((int[] point) -> (point[0] * point[0] + point[1] * point[1])));或Ar

2020-12-01 18:04:29 1031

原创 分析以及代码实现八大排序算法——Java版本

Java实现八大排序算法算法特点性能对比参考博客:八大排序算法–Java实现插入排序 — insertionSort基本思想:每步将一个待排序的元素,按其值的大小插入前面已经排序的数组中适当的位置上,直到全部插入完为止。注意在每次比较后都要移动。public static void insertionSort(int[] arr){ for(int i = 1 ; i < arr.length ; i++){ int item = arr[

2020-11-28 15:35:59 450

原创 Java PriorityQueue优先队列自定义类比较器的使用方法

Java PriorityQueue优先队列自定义类比较器的使用方法PriorityQueue官方APIPriorityQueue默认是升序自定义类比较器的用法: public class ListNode { int val; ListNode next; ListNode() {} ListNode(int val) { this.val = val; } ListNode(int val, ListNode next)

2020-11-26 16:07:04 5105

原创 LeetCode: 链表类题型知识点

#链表# 知识点:多指针法:根据题目的要求需要记录前驱节点(pre),当前节点(cur),后驱节点(post),分析题目时要明确每个指针扮演的角色,来完成最终的解题目标。此外通常会在链表头部建立一个ListNode dummy = new ListNode(0);节点,用来指向并记录答案(return dummy.next)。快慢指针法:slow,fast以不同的速度遍历链表,可以用来求一个链表的中间节点,也算是一种特殊的双指针法。排序:链表中也有很多排序题,需要熟悉八大排序,其中快速排序和归并排序

2020-11-26 15:58:49 403

原创 Java 核心技术卷一 摘录

Java 核心技术卷摘录final关键词声明常量,只能被赋值一次,赋值后不能被更改,习惯使用大写命名。NaN表示不是一个数字,0/0或者负数的平方根为NaN。位运算:&(与)、|(或)、^(异或)、!(非)。比如二进制从右数第四位为1,int fourthBittFromRight = ( n & ( 1 << 3 )) >> 3;Math:1.常量 Math.PI、Math.E。2.三角函数 Math.sin、Math.cos、Math.tan。

2020-11-18 18:28:30 530

原创 Day 12 :SQL复习 & Spring Boot视频学习 & 深入理解JVM

SQL教程总结主要学习sql的语法即可,一般使用Mysql比较多(本科学过所以就很快的过了一遍W3C的教程和后面的测试)。初学的话还是建议看菜鸟教程或者书《SQL基础教程(第2版)》 ,也只需要看一看语法部分即可(毕竟专门做数据库,其他知识点看面经总结即可)。Spring Boot视频学习1~7尚硅谷SpringBoot教程学习评论区有课件可以下载直接跟着视频和老师的笔记来学习操作就好啦,里面有笔记的pdf版(刚开始没找到还找了个转换的方法——如何用Chrome把markdown文件转化为p

2020-10-26 20:19:34 405 1

原创 Day 11 : Spring框架尚硅谷 40~49 & SpringMVC

事务事务概念什么是事务?逻辑上的一组操作,要么都成果,有一个失败则都失败。比如银行转账,A转100给B,则A要少100,B要多100。而这两部分都需要成功才行,有一个失败则都会失败。事务的四个特性(ACID):1)原子性:不可分割;2)一致性:操作前后总量不变;3)隔离性:多事物操作之间不会产生影响;4)持久性:事务执行完毕之后,数据发生永久变换;事务流程事务操作事务一般添加到JavaEE三层结构的Service层(业务逻辑层)在Spring进行事务管理操作有两种方式 1)编.

2020-10-25 15:59:44 423 1

原创 Day 10 : Spring框架尚硅谷-Spring 25~32

AOP概念:AOP-面向切面编程,把各部分模块进行隔离,降低耦合度,不通过修改源代码的方式来为类添加新的功能,或者增强原来的功能。底层原理:使用动态代理,分以下两种情况(同样也是已经封装好了,只需要学会配置就可以用了,但是也要知道底层的原理)1)有接口,使用JDK动态代理:创建接口实现类代理对象。2)没有接口,使用CGLIB:创建子类的代理对象AOP术语连接点类中原始的,可以增强的方法叫做连接点。切入点我们实际增强的方法叫做切入点。通知(增强)实际增加(强)的逻辑操作叫做通知通知

2020-10-25 14:42:59 421

原创 Day 9 : Spring框架网易云课堂教程1~22

Spring视频教程JavaGuide中对Spring一些资料的整理准备跟着网易云课堂的Spring教程先过一遍Spring框架的基础知识。综合知识点:Spring框架特性:轻量级、开源、一站式aop:面向切面编程,即扩展功能不是修改源代码实现。ioc :控制反转,不通过new来创建对象,而是交给Spring配置。一站式的体现:Spring在javaee的三层结构中都有对应的不同解决技术1)web层(表示层):SpringMVC2)service层(业务层):Spring的ioc3)

2020-10-23 21:56:37 517

原创 Day 8 : 补Java语言基础

包、JAR、JWS部署应用程序的三种情况1 本机:JAR2 远程:Servlets3 介于上述两者之间:Java Web Start(JWS)、RMI.java & .class.java文件是我们编写代码的文件,运行时需要先编译,编译完成后会生成.class文件,我们真正执行的是.class文件中的main()函数。你可以通过-d来选择编译后的文件放在哪里,并且如果没有路径文件夹,它会自动创建(IDEA会自动帮忙管理)://编译,生成xxxx.class%javac -d ..

2020-10-20 18:45:35 400

原创 Day 7 : 补Java语言基础2(集合 & 泛型)

集合常用集合:ArrayListTreeSet : 有序、防止重复。TreeSet中的元素必须是实现Comprable中compareTo的类型HashMap : 以name(key)-value对的形式存取。值可以重复,但是关键词不可以。LinkedList : 插入删除比较高效的ArrayList。HashSet : 防止重复、可快速找寻相符的元素。HashSet通过hashCode()和equals()双重检查来防止重复,前者查值是否相同,后者查是否为同一个对象(

2020-10-19 20:02:33 409

原创 Day 7 : 补Java语言基础1(网络& 线程 & 并发(同步)) & 多线程聊天小程序

客户端 、 服务器客户端连接到一个服务器上后就可以向服务器发送信息,服务器接受到信息之后会将信息馈送给连接在这个服务器上的所有客户端。1.客户端建立socket连接客户端和服务器各有对应的IP地址以及TCP端口号,但客户端只需要知道服务器的端口就可以完成收发消息的任务了。其中TCP端口号是一个16位数字(0~65535);(0~1023)保留给已知服务,不能使用;(1024~65535)可以给服务器使用。下面是客户端连接到服务器的代码:读取socket下面的代码展示了客户端如何接受服

2020-10-19 17:26:55 432

原创 Day 6 : 补Java语言基础3(序列化、文件读写)

序列化序列化是用来保存对象或者类的当前状态的一种操作,比如游戏中角色的血量需要在暂停游戏时保存下来。序列化对象//创建FileOutputStream和一个ser文件,用来以字节形式保存对象FileOutputStream fileStream = new FileOutputStream("xxxx.ser");//创建ObjectOutputSteam用来写入所需要保存的对象ObjectOutputSteam os = new ObjectOutputSteam(fileStream);

2020-10-18 22:11:07 408

原创 Day 6 : 补Java语言基础2(GUI事件、内部类、布局、组件、Swing、布局管理器)

GUI——事件以按钮事件的监听为例(JFrame 为窗口):总共有三个角色:听众(我们)需要进行监听:实现接口,向事件源(本例为按钮)注册/。事件源(按钮):接受注册,取得用户事件,调用处理方法。Event对象:事件对象携带事件信息,作为调用事件的参数传入。GUI——图形粗略浏览了一下。内部类内部类可以使用外部所有的方法和变量。以下用的例子为用内部类实现两个按钮事件:GUI——布局参考上面的程序,在frame.getContentPane().add()中,通过输入第一个参

2020-10-18 17:03:32 420

原创 Day 6 : 补Java语言基础1(静态、数字格式化、异常处理)

静态(static)静态方法静态方法无需创建实例即可调用,比如Math.round();Math.abs().静态方法不需要调用实例变量,非静态方法调用实例变量,并且通常实例变量的值会影响到其内部方法。静态变量静态变量是被同一类所有实例共享的,并在类创建之前就会初始化。静态的final变量(比如:static final double PI = 3.1415926)代表常数变量,是固定不变的,通常来说要大写。如果没有被初始化则会报错。final还可以用在方法和类上,分别代表不能被覆盖的方法和

2020-10-18 15:01:55 422 1

原创 Day 3-5 : 补Java语言基础 & 学习Docker容器

看《Head First Java》到270页。小知识点:     1.对象是Java的灵魂。     2.一般把对象的变量设置为private,想使用变量必须调用我们所写的方法。     3.实例变量(对象声明的变量)有默认值,局部变量(在方法里面的变量)没有。     4.“== 比较符”可以比较primitive主数据类型的值是否相

2020-10-15 20:28:28 449

原创 Day1-2 : 环境配置 & 第一个Java项目

首先粗略的浏览了一下大致的学习内容,有一部分计网、操作系统、数据库之类的基础知识和C++是相同的。按照推荐书籍下载了一些PDF电子书版本,然后计划安装IDEA作为编辑器,再去补一下Git这项目管理工具的知识。(磨刀不误砍柴工!)另外关于Docker,目前还不是很懂,先码住,之后再学。环境配置(macos系统)Java JDK1.8网上建议初学使用Java 8 版本,比较稳定。我按照这个教程安装的。结果安装时发现电脑里已经有Java 11了,估计是之前给pp做项目的时候下载的忘记了。要注意最后需

2020-10-15 20:26:41 408

原创 最大均值差异(Maximum Mean Discrepancy, MMD)复现教程

本文章主要为了复现这个MMD教程中的代码。pytorch环境安装下面参考pytorch的官方教程。这是安装pytorch的先决条件,如果需要用到GPU加速的话还需要下载CUDA驱动。(不过这个小项目就不用啦)首先需要一个Anaconda做为package manager,为项目建立虚拟环境(因为不同项目对pytorch或者其他包的版本要求不同,不能兼容哦)。之后要下载项目所需要的pytorch版本。如果项目中有说明具体的pytorch版本,最好下载对应的版本,会省很多问题。在这个MMD项目中没有

2020-10-14 20:11:06 5449 7

原创 macOS 用Sublime Text编译LaTex报字体获取不到警告

解决方法是在开头\documentclass{article}后面加上\usepackage[OT1]{fontenc}

2020-09-29 20:49:16 636

原创 正常的仿射变换矩阵F和pytorch的affine_grid()中 “theta”的区别

记录一个大坑!!!https://discuss.pytorch.org/t/how-to-convert-an-affine-transform-matrix-into-theta-to-use-torch-nn-functional-affine-grid/24315/3

2020-09-12 16:17:47 1337

原创 如何将resize后图片的扭曲变换应用于resize前的原图?

最近在做一个视频稳定深度学习项目,目标是输入一张图,预测一个单应变换扭曲(3*3的矩阵),把原图扭曲到稳定的位置。在把图片输入网络之前会对原图以及标签进行resize,因此预测出来的扭曲变换不能直接应用于原图,还要进行一次尺度变换,其具体的计算结果如下:设原图尺寸(H,W),图上的点A经过扭曲变换H扭曲到位置B;resize后的图尺寸(H’,W’),resize后图上的点A’经过预测的扭曲变换H’变换到位置B’;需要确定H和H’的关系得出的结果是H’=RHR-1其中R是resize的尺度变换矩

2020-09-07 10:28:45 802

原创 如何将多个torch.Tensor存储下来并在新的纬度上进行合并?

output_list = [] # 存放输出的listfor idlayer in range(self.num_layers): # 每一次循环 current_input = input[idlayer,...] current_output,current_hidden_state = self.cell(current_input,current_hidden_state) # 按照输出间隔将输出存储下来 if i

2020-07-21 11:29:24 3334 1

空空如也

空空如也

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

TA关注的人

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