自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 问答 (1)
  • 收藏
  • 关注

原创 对象转换器mapstruct VS BeanUtils

官网:https://mapstruct.org/documentation/stable/reference/html/对象转换器mapstruct为啥要是用mapstruct?mapstruct优于BeanUtils,BeanUtils用的是反射,开支比较大.一些公司是不建议使用BeanUtils的.注意:mapstruct和lombok的版本不可变,否则会出错1.导入坐标:<!--模板对象与实体对象转换--> <dependency&g...

2022-04-14 23:28:13 530

原创 MongoDB数据库和GridFS

MongoDB数据库和GridFS

2022-04-14 23:16:35 738

原创 定时任务:spring tack

spring提供的定时器

2022-04-13 20:39:56 445

原创 程序员必备十大算法-最短路径(3)

//最短路径Ballman-Ford #include<bits/stdc++.h>using namespace std;int main(){ int dis[10],u[10],v[10],w[10]; int n,m,flat; cin>>n>>m; for(int i=1;i<=m;i++) cin>>u[i]>>v[i]>>w[i]; //初始化 for(int i=1;i<=n;

2020-11-08 20:59:40 185

原创 程序员必备十大算法-最短路径(2)

最短路径(2)时间复杂度为((m+n)logN),空间复杂度为M,但是不可以解决负权和带有负权值的路径,更不能判断是否带有负权或者负权的边思路初始化在第一个站点dis然后寻找没有经过的路径最短的站点(用book数组标记)检测可以去的路径是否可以减短if(dis[k]>dis[u]+a[u][k]) { dis[k]=dis[u]+a[u][k] }检测的时候只用检查前(n-1)个站点,最后一个站点不用检测for(int i=1;i<=n-1;i++)//最

2020-11-08 20:41:29 181

原创 程序员必备十大算法-最短路径(1)

最短路径的算法大致可以分为三种,不过每一种的算法都有所不同在时间复杂度、空间复杂度、负权、有负权的边、是否可以检验有没有负权或者带负权的边这个算法比较简单,暴力解决,时间复杂度为pow(n,3);空间复杂度为pow(n,2);可以处理负权和带负权边的算法//最短路径(1)#include<bits/stdc++.h>using namespace std;int main(){ int a[10][10]; int m,n; cin>>m>>n; f

2020-11-08 19:50:13 167

原创 程序员必备十大算法-动态规划-最长公共子序列

这个算法就不在解释了,看不懂的联系博主(qq3100310659)(备注:c++学习)不备注就不给通过//动态规划-最长公共子序列#include<bits/stdc++.h>using namespace std;int main(){ string a1,a2; cin>>a1>>a2; int x=a1.length(); int y=a2.length(); int dp[21][21]; for(int i=0;i<=x;i++)

2020-11-06 18:51:57 73

原创 程序员必备十大算法-动态规划-最大上升子序列之和

看懂最长上升子序列这个就简单了这个时候的初始化就不是1了,求和的,当然就是本身的数值了,最大上升子序列之和的初始化dp[i]=a[i];最长上升子序列的初始化dp[i]=1;在状态转移中最大上升子序列之和的转移方程for(int i=2;i<=n;i++) for(int j=1;j<i;j++) if(a[i]>a[j]) dp[i]=max(dp[i],dp[j]+a[i]);最长上升子序列的转移方程for(int i=2;i<=n;i

2020-11-06 13:44:35 135

原创 程序员必备十大算法-动态规划-最长上升子序列

动态规划中的最长上升子序列是比较简单先看题目描述给出一个系列长度为n的一组数输出最长上升子序列的长度例子71 7 3 5 9 4 8输出4当然了,我的程序中有多余的输出,是为了让大家看得更明白首先判断是用动态规划的标志是求最长,其次就是初始化一个状态dp[i]=1(i为所有的数组长度空间)原因是,每个数的本身就是代表一个长度,其长度自然就是1了如何找出转移方程呢?在第i个数时,只要他比前面的数大,那么前面的数就可以增加一个长度,只要找到因为这个数的加入所得的最长的那一列就好for(i

2020-11-06 13:27:49 150

原创 程序员必备十大算法-查找技术-线性查找

线性查找真的没得说(写出来代码主要是1、为了十大算法在我的文章里都出现。2、怕有人不知道什么叫线性查找(BFPRT))直接上代码//查找技术-线性查找#include<bits/stdc++.h>using namespace std;int main(){ int n,key,f; cin>>n>>key; int a[101]; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;

2020-11-06 12:51:27 312 1

原创 程序员必备十大算法-折半查找(二分查找)

这个算法大概是十大算法中除了线性查找中最间的一个算法了但是二分查找的极限很大,待查找的数必须是有序的(单增或者是单减)思想比较简单,就是每次问最中间的数和待查找的数的关系了;直接上代码,看一下代码过程,我就不多赘述//折半查找(二分查找)#include<bits/stdc++.h>using namespace std;int a[100],n,key;int Binsearch(int left,int right,int key){ if(left>right)re

2020-11-06 12:43:45 95

原创 程序员必备十大算法-动态规划-数字三角形-优化版(参考北大郭伟老师)

动态规划是十大算法中最难的一个算法,在于算法没有固定的模板,但是核心的思想是一致的,之能总结出几种常见的dp。我们以数字三角形为题先引入动态规划的思想动态规划在网络上的资料都很多,都是众说纷纭,今天我也总结一下动态规划的一些心得吧首先:动态规划的使用范围是和贪心算法的思想一样,就是在子问题上的最优解到整体的最优解,可以写成递归的,递推的题都可以写成dp;常见的要用到dp的题目的明显标记是1、求最值最大上升子序列最长公共子序列从m个单位中选出n个使之最佳(max,min);2、是否存在当然了

2020-11-06 12:27:14 316

原创 程序员必备十大算法-贪心算法2-活动时间安排问题

贪心算法中最经典的解决问题就是活动时间安排问题整体思路是把活动时间结束早的先安排,把更多的时间空余出来安其他的活动如果只是求解活动的安排数量,只需要简单的sort排序就好return x.end<y.end;且在结构体struct node 中不必加入int plan;但是有的题目中要求解活动安排顺序,那就加入int plan;目的是为了标注是否被选中如果还要纠结是否时间覆盖最长,那么对排序就要严格,同时结束的活动,开始时间早的排在前面,同时开始活动的,结束时间晚的排在前面bool up(

2020-11-06 11:17:48 817

原创 程序员必备十大算法-贪心算法1-找钱问题

贪心算法比较局限,因为在决策上存在分歧,还有待证明,但是和动态规划的思想一样,都是从局部最优解到整体最优解今天讲一下贪心算法可以解决的其中一个问题------找钱问题首先说说一下思路,也就是核心算法找钱的规则是尽可能少的纸币数找齐,找不齐就说“找不齐”,找齐就输出找钱的方法和纸币张数,每张纸币的张数有限首先要有最少张数,必须先用大钱找零,生活中就是这样的嘛,所以要排序,(给定的直接有序就不用了)因为面额张数有限,所以要用下min函数,min(trans/a[i].money,a[i].number

2020-11-06 10:17:55 1442

原创 程序员必备十大算法3-归并排序

十大算法之归并排序首先要有分治的思想归并排序的过程1、建立归并函数入口Mergesort(a,n);a是数组a,n为数组长度入口中要有一个动态分配数组,长度为n:(int )malloc(nsizeof(int);2、建立一个msort函数msort(a,arr,0,n-1)用来做二分0和n-1就是脚标了3、合并merge(a,arr,left,mid,right)上代码//归并排序#include<bits/stdc++.h>using namespace std;int

2020-11-05 09:17:50 146

原创 程序员必备十大算法2-堆排序(堆是一种树的数据结构,学习前请先了解堆的定义和构建)(qq:3100310659)

堆排序话不多说,先上代码#include<bits/stdc++.h>using namespace std;//堆排序int a[101];void sift(int a[],int i,int n){ //父子关系为二倍 int father=i; int child=i*2; while(child<=n) { if(child<n&&a[child]<a[child+1])child++; if(a[father]&

2020-11-05 08:53:00 97

原创 程序员必备十大算法1-快速排序

今天就先讲一下排序算法之快算排序首席按要明确十大算法中排序占了三个1、快速排序2、堆排序3、归并排序。当然还有其他的排序算法都比较简单,冒泡,桶等;有人说一个sort不就行了?这么说是不对的,我们要求的是一种算法的思维,话不多说,先上快速排序算法一:快速排序算法其实快速排序就是一个换,对,换位置;当然了还要有二分的知识,(二分是啥,不要害怕,简单的一种查找思想而已)上代码#include<bits/stdc++.h>using namespace std;int a[101];.

2020-11-05 08:29:44 260

原创 c++计蒜客----动态规划----Pell 数列

Pell 数列 a_1, a_2, a_3, …a 1 ,a 2 ,a 3,… 的定义是这样的,a_1 = 1, a_2 = 2, … , a_n = 2 \times a_{n - 1} + a_{n - 2} (n > 2)a 1 =1,a 2 =2,…,a n =2×an−1 +an−2(n>2)。小蒜给出一个正整数 kk,要求 \text{Pell}Pell 数列的第 kk 项模上 3276732767 是多少。输入格式第 11 行是测试数据的组数 n(1 \le n \le 20

2020-10-26 11:57:56 636

空空如也

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

TA关注的人

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