自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mr.yang的博客

愿你熬得过万丈孤独,藏得下星辰大海!

  • 博客(65)
  • 收藏
  • 关注

原创 唐诗分析之可视化

唐诗分析可视化技术选型1. 前端渲染工具--echarts2. 数据库访问--(MysqlConnectionPoolDataSource)3. 前后端交互--JQuery4. 缓存提高访问效率--redis功能实现测试遇到的Bug优化技术选型1. 前端渲染工具–echarts需要对数据库中的数据进行分析,那么我们就不可避免的面临分析工具的选择。我们要对数据库中的诗人的作诗量进行统计。那么图...

2020-03-18 00:23:28 4453 7

原创 牛客爬楼梯

题目链接:爬楼梯来源:牛客网有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶、3阶。请实现一个方法,计算小孩有多少种上楼的方式。为了防止溢出,请将结果Mod 1000000007给定一个正整数int n,请返回一个数,代表上楼的方式数。保证n小于等于100000。测试样例1:1返回:1测试样例2:3返回:4测试样例3:4返回:7看完题心中一动!...

2020-03-13 00:10:20 573

原创 KMP字符串匹配算法

介绍百度百科KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是通过一个next()函数实现,函数本身包含了模式串的局部匹配信息。KMP算法的时间复杂度O(m+n)。实现实...

2020-03-11 23:14:45 400

原创 归并排序

归并排序学习链接:来自哔哩哔哩思路:将待排序的数组递归细分为多个小数组将多个小数组慢慢合并,合并的同时排序。总结:先递归分解然后合并。其中合并的方法将数组分为了两部分:左边数据和右边数据。通过双指针将两边的数据从小到大存储到temp数组中。当排好序后,将temp数组中的数据拷贝回原数组arr中。比较难理解地方:拷贝回原数组到时候,原数组的下标从left开始,而temp的数...

2020-03-08 19:42:19 282

原创 单链表增删改查

单链表节点类链表类插入到最后按顺序插入(完成后,链表有序)更新节点删除节点单链表反转节点类class Node{ public int id; public String name; public Node next; //指向下一个节点 public Node() { } public Node(int id, String name...

2020-03-08 14:53:42 386

原创 二叉树的前序、中序、后序遍历

二叉树BinaryTree类(调用节点类的方法)Node类(节点类,遍历细节)Main类测试遍历代码BinaryTree类(调用节点类的方法)class BinaryTree{ private Node root; //表示根节点 public BinaryTree(Node root) { this.root = root; } //前序...

2020-03-08 01:37:25 268

原创 牛客大整数排序

链接:原题来源:牛客网题目对N个长度最长可达到1000的数进行排序。输入描述:输入第一行为一个整数N,(1<=N<=100)。接下来的N行每行有一个数,数的长度范围为1<=len<=1000。每个数都是一个正数,并且保证不包含前缀零。输出描述:可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行。示例1...

2020-03-07 00:23:02 204

原创 牛客奇校验

链接:原题来源:牛客网题目输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数(如’3’,输出:10110011)。输入描述:输入包括一个字符串,字符串长度不超过100。输出描述:可能有多组测试数据,对于每组数据,对于字符串中的每一个字符,输出按题目进行奇偶校验后的数,每个字符校验的结果占一行。示例1输入33a输出1011001110110011...

2020-03-07 00:01:16 369

原创 一个云上相册

云相册目录1.引言2.开发环境3.项目功能4.技术选型5.数据库设计6.功能实现细节①登录与注册②上传图片③删除图片④展示图片⑤分页展示⑥复杂查询⑦退出登录7.效果展示8.细节优化9.遇到的难题10.学到的技术1.引言云相册项目实际上相当于是一个图片存储的服务器。它的主要功能是图片存储与展示。用户通过注册登录后,可以将自己的旅游拍摄的图片,自己喜欢的壁纸,儿时的回忆等等图片上传到服务器上进行保...

2020-02-27 00:43:48 1406 4

原创 唐诗分析之爬取数据

唐诗分析项目简介唐诗分析项目是一个对中国古代唐诗的内容进行数据统计并将其以图表等形式可视化出来的一个JavaWeb项目。项目的成果可以让用户直观的看到唐朝的各个诗人的作诗量。除此之外,项目将诗人们使用最频繁的词语可视化为一个词云供用户观看。项目思路项目主要分两个大步骤:从网络上爬取古诗词保存入数据库提取数据库中的信息进行处理展示在该博客中描述了第一个步骤将数据保存入数据库。我...

2020-02-12 23:51:10 2272

原创 SSM整合后事务不起作用的原因及解决

问题及原因:SSM整合之后事务不起作用。在刚学习完SSM整合后我意识到了框架的魅力,spring为我们提供了声明式事务管理,但是在整合之后,我发现不起作用了。在保存账户信息后我故意写了一个错误代码,测试事务是否可以控制,但是结果数据依旧保存进了数据库。我试着将事务通知的属性改为任何异常都回滚,但依旧不起作用,因为默认就是任何异常都回滚。经过网上查询,发现spring容器是springm...

2020-02-08 23:17:58 1116 3

原创 spring项目启动慢问题

问题:这个问题在我学spring框架的时候就出现过,当时启动缓慢一直卡在控制台项目。但是耐心等是可以出来的。当我学到springMVC的时候又是这样,而且tomcat启动打印日志又卡住了如下图忍无可忍我上网搜了好多但是都问题不匹配。我下面又自己尝试是卡在那个环节了。因为我学spring的时候就遇到过,所以下意识认为是spring框架配置文件的问题,于是在这个springMVC的入门程序中我...

2020-02-05 12:33:10 4938 1

原创 压缩字符串

题目:给定一组字符,使用原地算法将其压缩。压缩后的长度必须始终小于或等于原数组长度。数组的每个元素应该是长度为1 的字符(不是 int 整数类型)。在完成原地修改输入数组后,返回数组的新长度。进阶:你能否仅使用O(1) 空间解决问题?示例 1:输入:["a","a","b","b","c","c","c"]输出:返回6,输入数组的前6个字符应该是:["a","2","b",...

2020-02-04 22:36:56 274

原创 二进制求和

二进制字符串相加看似简单的一道题花费了我两小时,可能我的方法会很繁琐,但是却是好理解的。因为人怎么算,程序就怎么算的。额听起来很牛逼,其实就是强行算哈哈!原题出处:二进制求和思路:先不管两个字符串的长短,让他们能相加的部分先进行计算,用一个变量 x 记录进位的值。当将短的字符串计算完毕后,再用进位与长字符串剩余的部分的进行计算,整个过程是从尾部到头部的。我们用StringBuffer记...

2020-02-04 15:26:02 537

原创 Mybatis主配置文件模板和log4j.properties配置文件保存

二者都在项目的resource目录下这里是连接Mysql数据库时写的主配置文件:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/...

2020-01-09 16:48:41 294

转载 【牛客网练习】二叉树平衡检查

参考:学习自该大佬题目实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1。给定指向树根结点的指针TreeNode* root,请返回一个bool,代表这棵树是否平衡。分析1.求出左子树与右子树的高度差,大于1则false2.如何求?递归求出,如果节点为空那么则深度为0,这同时也是递归出口,若不为空则递归左子树与右子树。注意:最终二叉...

2019-12-01 22:00:13 163 2

原创 【牛客网练习】链表分割

链接:原题出处来源:牛客网[编程题] 链表分割热度指数:43019时间限制:3秒空间限制:32768K算法知识视频讲解编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。思路:一看到这道题我就想到了创建两个链表的想法,一个...

2019-11-29 01:54:09 156

翻译 二叉树的镜像

【牛客】求出二叉树的镜像链接:原题出处来源:牛客网其实我是看了大佬的博客:大佬解说操作给定的二叉树,将其变换为源二叉树的镜像。有两种实现方式:递归:想象一下,加入只有三个结点,根结点,左孩子,右孩子那么就交换左右孩子。出口条件:节点为空或者左右孩子都为空 //递归 public void Mirror(TreeNode root) {...

2019-11-25 16:32:44 136

原创 两个栈实现队列

实现一个队列import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public void...

2019-11-23 19:42:13 106

原创 优先级队列(堆)

实现一个优先级队列内部方法:(1)建大(小)堆(2)调整堆(3)入队列(4)出队列package test_9_22;public class MyPriorityQueue { private int[] array; private int size; public MyPriorityQueue() { array = new int...

2019-11-23 19:17:16 122

原创 二叉树的建立,遍历

建立二叉树的两种方式(1)根据前序遍历数组和后序遍历数组建立(2)根据中序遍历数组和后序遍历数组建立遍历这里实现了后序遍历,中序和前序只是list.add的位置发生了改变(这里是递归实现)import java.util.ArrayList;import java.util.Arrays;import java.util.List;class Node { int va...

2019-11-23 18:49:46 126

原创 实现简单的栈

利用LinkedList实现一个简单的栈import java.util.LinkedList;import java.util.Queue;public class MyStack { private Queue<Integer> que = new LinkedList<>(); /** Initialize your data structur...

2019-11-23 18:27:11 186

原创 尼科彻斯定理

链接:原题出处来源:牛客网验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。例如:1^3=12^3=3+53^3=7+9+114^3=13+15+17+19接口说明原型:/*功能: 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。原型:int GetSequeOddNum(int m,char * pcSequeOddNum)...

2019-11-23 17:55:45 1225

原创 统计同成绩人数

链接:原题出处来源:牛客网读入N名学生的成绩,将获得某一给定分数的学生人数输出。输入描述:测试输入包含若干测试用例,每个测试用例的格式为第1行:N第2行:N名学生的成绩,相邻两数字用一个空格间隔。第3行:给定分数当读到N=0时输入结束。其中N不超过1000,成绩分数为(包含)0到100之间的一个整数。输出描述:对每个测试用例,将获得给定分数的学生人数输出。示例1输入...

2019-11-23 17:26:20 248

转载 不用+号等算数运算符实现加法

转自:不用加减符号实现加减法今天有群友发了一个问题,要求不用加减符号(包括负号)来实现加减法。分析一下先看最简单的情况,假设1+1,按二进制算的话结果是10,可以看到从右往左的第一位变为0,第二位由于进位变为1。第1位的值有4种,0+0=0、1+0=1、0+1=1、1+1=0,这正好符合“异或”的情况。第2位的值来自于第一位的进位加上本身的值,进位的情况也有4种,0+0=0、1+0=0...

2019-11-23 14:59:47 269

原创 关于整数的原码,反码,补码

简要原码:即我们将十进制数字转换为二进制后的数字为原码反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外.补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1.举个例子:用8位二进制表示(按道理说int型数据用32位比特位表示,但是通常网上都是只要8位够表示就可以用8位表示,所以这里用8位表示)正数:十进制:11原码: 0000 1011(即二进制形式...

2019-11-23 14:46:58 6434

原创 机器人走方格I

题目链接:原题来源:牛客网有一个XxY的网格,一个机器人只能走格点且只能向右或向下走,要从左上角走到右下角。请设计一个算法,计算机器人有多少种走法。给定两个正整数int x,int y,请返回机器人的走法数目。保证x+y小于等于12。代码: //机器人 public static int count(int x,int y){ if(x==1||y==1...

2019-11-19 00:37:15 227

原创 byte b1 = 3, b2 = 4

byte 型数据相加参考:我查到的大佬的解说最近做了一道题有些疑惑,在网上查后还是决定记录一下,毕竟自己记性一般般呀。这年轻人????题目是这样的: byte b1=1,b2=2,b3,b6; final byte b4=4,b5=6; b6=b4+b5; b3=(b1+b2); System.out.println(b3+b6);问:这段代码的输出结...

2019-11-19 00:13:35 705

原创 对于properties配置文件放在src包下仍然报空异常的解决

即使将配置文件放在src包下也可能找不到。这里我是用类加载器找的,对于下面的pro.properties可以找到,但是对druid.properties却找不到。(写博客的时候也不太明白)在其他同级包下面用同样的方式找pro.properties可以找到解决方法:那就按相对路径来解决,退出到与配置文件同级目录下即可找到!...

2019-10-30 17:03:47 1010 3

原创 python之K-NN算法实现(鸢尾花数据)

运行环境:Jupyter一、K-近邻算法K-近邻(K-NN)算法可以说是最简单的机器算法。构建模型只需要保存训练数据集即可。想要对新数据点做出预测,算法会在训练数据集中找到最近的数据点,也就是它的“最近邻”。这里实现的是一个监督学习中的分类(二分类)问题。我们需要预测出测试数据的所属类别。二、实现步骤1.获取数据集导入Numpy方便操作数据,pyplot用来绘图解释:(1)loa...

2019-10-11 18:32:17 1724 1

原创 k-NN算法代码

获取鸢尾花数据,设置训练集和测试集from sklearn.datasets import load_irisimport numpy as npimport matplotlib.pyplot as plt#加载鸢尾花数据datas = load_iris()#利用切片收集150组鸢尾花数据(datas['data']表示datas的‘data’key值对应的数据,即鸢尾花的花瓣花萼...

2019-10-11 18:28:58 881

原创 python之K-近邻算法的过程实现

一、K-近邻算法K-近邻(K-NN)算法可以说是最简单的机器算法。构建模型只需要保存训练数据集即可。想要对新数据点做出预测,算法会在训练数据集中找到最近的数据点,也就是它的“最近邻”。这里实现的是一个监督学习中的分类(二分类)问题。我们需要预测出测试数据的所属类别。二、实现步骤1.获取数据集导入Numpy方便操作数据,pyplot用来绘图解释:np.random.uniform(1,...

2019-10-06 18:51:50 866

原创 堆排序

排序概念1.1 排序排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。平时的上下文中,如果提到排序,通常指的是排升序(非降序)。通常意义上的排序,都是指的原地排序(in place sort)。1.2 稳定性两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳定性的排序算法。9 , 5 , 2...

2019-09-27 22:53:40 384

原创 选择排序

排序概念1.1 排序排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。平时的上下文中,如果提到排序,通常指的是排升序(非降序)。通常意义上的排序,都是指的原地排序(in place sort)。1.2 稳定性两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳定性的排序算法。9 , 5 , 2...

2019-09-27 21:53:59 149

原创 希尔排序

排序概念1.1 排序排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。平时的上下文中,如果提到排序,通常指的是排升序(非降序)。通常意义上的排序,都是指的原地排序(in place sort)。1.2 稳定性两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳定性的排序算法。9 , 5 , 2...

2019-09-25 22:09:30 254

原创 直接插入排序

排序概念1.1 排序排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。平时的上下文中,如果提到排序,通常指的是排升序(非降序)。通常意义上的排序,都是指的原地排序(in place sort)。1.2 稳定性两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳定性的排序算法。9 , 5 , 2...

2019-09-25 20:28:31 362

转载 IDEA连接GitHub上传代码踩的坑(附上大神的一篇教程,看了保证思路清晰)

先看大神的教程,需要创建本地仓库的时候再回来观看效果更好这是博客园的一个大佬写的:作者:禁忌夜色153链接:idea整合git提交程序到GitHub的教程一、创建本地仓库时选择错误这里我们就该选择项目所在的位置为本地仓库。这是什么意思呢?直接上图:这里的Java11就是我的一个Java项目,不信你看左上角。所以选择本地仓库所在位置的宗旨:将来你想在哪个项目中上传代码,那就选择...

2019-09-09 20:52:19 303 3

原创 对自定义类型(结构体,枚举,联合)的理解

结构体类型其实结构体很好理解,一理解就可以理解。一个结构体存不同或相同的数据类型。一个结构体可以表示一个实体。你可以将想要放入的数据类型放入到一个结构体。有时候,结构体很形象。比如可以利用一个结构体表示一个点。一个点有x,y坐标。那么我们就可以将其封装在一个结构体里。有了结构体类型,那么定义变量就很简单了。定义:struct Point{int x;int y;}p; ...

2019-07-05 01:42:31 968

原创 关于C指针的理解

一级指针:C语言中,我们最常见的指针的形式就是一级指针了。比如:int *p;这是一个指向整型变量的指针。char *p;这是一个指向字符型数据的指针。从定义上看,不难发现,指针它也是一个变量。所以以后见到指针也不要慌,它就是一个变量。那么指针变量里究竟存储的是什么呢?相信大家也都知道,那就是一个地址。假设有一个变量int a = 520;那么a的地址就是 &a....

2019-06-26 17:30:55 178

原创 题目1:将非负十进制整数n转换成b进制。(其中b=2~16)题目2:任何一个正整数都可以用2的幂次方表示。

题目1:将非负十进制整数n转换成b进制。(其中b=2~16)分析:将一个非负十进制整数n转化为b进制。首先我们可以观察一下二进制的转化:十进制的n = 10转化为二进制具体方法是不断的除以2求余数(n%2)。n的变化: n = n / 2。出口就是n为0的时候。(递归出口因此就得到了)那么我们也知道八进制就是不断的除以8求余数。与二进制一样。十六进制也是如此。只是在余数表达的时候不一样...

2019-06-06 21:17:42 417

空空如也

空空如也

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

TA关注的人

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