- 博客(37)
- 收藏
- 关注
原创 记录错误:Could not locate zlibwapi.dll. Please make sure it is in your library path!
之前都是使用Tensorflow cpu版本。为了加快训练速度,于是对gpu版本进行环境配置。没想到心态差点崩溃。按照网上教程安装好后cuda和cudnn后,一直遇到各种奇奇怪怪的错误,逐个解决后,遇到了最后这个错误。起初以为环境变量配置不正确,不断修改之后还是无用。最后在stackoverflow上找到了解决方法。
2023-05-13 23:34:38
821
原创 JVM-双亲委派机制
当用户写的程序中,比如自己定义了一个Student类,如果没有自定义类加载器的话,首先委托到ApplicationClassloader,这个加载器再往上委托,但很明显上层的两个父加载器的加载范围不包括自定义类,所以加载失败。在Java中,一个类如果要被执行首先会被编译成.class文件,然后由类加载器ClassLoader加载到JVM中。因为在Java中有好几个类加载器,那么由哪个类加载器来加载这个.class文件便需要一种机制来使其规范运行。这个机制便是双亲委派机制。对每层而言上一层为父加载器。...
2022-07-17 20:12:36
1451
原创 为什么说JAVA只存在值传递
因为change函数获得的是p1和p2被复制了的首地址,即使这两个地址交换,仍对main函数中的p1和p2所指的对象产生不了影响。“咦,不是说JAVA只有值传递嘛,这里传入Person对象都被改变了呀,这不是明显存在引用类型的嘛?这里传入的是对象p的首地址的复制品,通过这个地址复制品对其进行修改肯定也是能影响到对象p的数据的。记住,区分值传递和引用传递的主要依据是判断是否实参被复制,而不是对象数据是否发生改变。先说结论JAVA中如果函数形参是引用类型,那么实参传入的是。两者的主要区别是在于。...
2022-07-15 16:39:31
204
原创 数能一体化物联网感知层路由协议研究
数能一体化物联网感知层路由协议研究名词解释物联网:Internet of Things (IOT) 无线传感网络:Wireless Sensor Network (WSN)簇:Cluster 簇头:ClusterHead (CH) 簇内成员:ClusterMember (CM)IOT与WSN在IOT 体系架构中,WSN 在 IOT 的感知层网络中扮演着极其重要的地位,IOT 通过 WSN 等进行底层数据的采集和处理,并将该信息经上层网关汇聚至网络融合体系,最后再由上层网络传输至用户终端,进而实现
2022-04-25 21:04:27
2396
原创 字母对子串的贡献值
我们通过两道题进行介绍相关概念题目一对于这类题,如果我们暴力解答,也就是先求出所有子串的值然后分别进行统计,放平常的话,是一种方法。但是,这类题,我们注意到字符串长度上限是n^5,按常规方法是肯定会有一些测试集超时而无法完全通过。有一种巧妙的方法就是计算每个位置上的字母的贡献值然后进行相加。这道题是统计不同字符的个数,相比于下道题简单些。就是需要统计当前子串中,第一次出现的字母的个数。我们需要思考一下,什么时候这个下标上的字母才能发挥它在这个题目中的对应作用呢。便产生了一个区间:当前下
2022-03-19 21:29:42
476
原创 git分支概述
为什么要使用分支使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。当在原有的项目上,想添加一个新功能时,如果直接在原分支上进行修改,可能会存在对项目修改崩溃的一个情况。这个时候就可以新创建一个分支,然后进行开发,开发测试完成后再进行合并。相关命令查看当前分支状态: git status (或者可以直接在用户行末尾查看)创建新分支: git branch xxx切换新的分支: git checkout xxx查看分支所处版本: git branch -v.
2022-03-05 10:40:54
3061
原创 蓝桥杯-七段码问题
思路:首先使用DFS进行遍历,列举出所有亮灯的情况。然后使用并查集对每种情况进行判断,是否亮起的点在同一个连通块内。#include<bits/stdc++.h>#define N 8 //light表示亮的状态,map表示连通性 ,f[N]表示x的父亲 int light[N],map[N][N], f[N];int ans=0;//并查集 int find(int x) { if(f[x] == x) { return x; } else { //将x到根..
2022-02-28 22:34:41
338
原创 Android-视图绑定
举例:此时,first_layout.xml中定义了一个button且id为button1的按钮。在FirstActivity中我们想要调用这个按钮的话,有两种方法。第一种,通过FindViewById(R.id.button1)得到button对象,此方法在button等控件数量较多时,就会显得十分繁琐第二种,通过视图绑定功能步骤:1.首先在当前模块的build.gradle中的Android内容块中,添加 viewBinding { enabled = true
2022-02-23 23:26:25
2222
原创 跨域问题概述
什么是跨域定义:跨域是指从一个域名的网页去请求另一个域名的资源。但是一般情况下不能这么做,它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。跨域严格一点的定义是:只要协议,域名,端口有任何一个的不同,就被当作是跨域同源策略所谓同源是指,域名,协议,端口均相同。跨域问题的产生因为当我们使用springboot+vue进行前后端分离开发时,sprinboot程序占用了一个端口,vue程序占用另一个端口,因此这两个程序此时不同源。当vue前端去请求后台数据时,便会产生跨.
2022-02-10 17:39:06
566
原创 JWT概述
JWT是什么?jwt一般是用来进行授权认证。每当用户登录的时候,其后续的每个请求都会携带jwt,然后系统在每次处理用户的请求之前,都会先进行jwt安全校验,通过之后再进行处理。JWT的组成jwt可以看成是一个长字符串,由三部分组成:header, payload,以及两者结合加密形成的signature,中间使用.进行拼接。eyJ0eXAiOiJqd3QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6InRvbSIsInJvbGUiOiJhZG1pbiIsIn.
2022-02-09 22:37:48
2876
转载 前缀、中缀、后缀表达式
看到了一篇讲解前缀、中缀、后缀表达式的非常详细易懂的文章,记录一下https://www.cnblogs.com/zzliu/p/10801113.html
2022-01-13 18:57:20
73
原创 数据结构-ADT
数据结构小知识:抽象数据类型(ADT)是指由用户定义的、表示应用问题的数学模型,以及定义在这个模型上的一组操作的名称具体包括三个部分:数据对象,数据对象上关系的集合,以及对数据对象基本操作的集合 >ADT 抽象数据类型 { 数据对象: <数据对象的定义> 数据关系:<数据关系的定义> 基本操作:<基本操作的定义> }也就是 数据的对象,关系,和操作数据结构:数据,结构,算法(操作) >基本操作名(参数表)
2022-01-10 22:00:01
1943
1
原创 数据结构-循环队列
#include<bits/stdc++.h>using namespace std;#define MAXSIZE 10//注意:对于循环队列来说,为了区别空或者满,不得不永远浪费一个空间,也就是front所在的位置。typedef struct MyQueue { //头指针和尾指针 int data[MAXSIZE]; int front; int rear;}MyQueue;//循环队列的创建MyQueue* create(){
2022-01-10 21:30:31
242
原创 数据结构-栈
栈的特点:先进后出#include<bits/stdc++.h>using namespace std;//栈的定义typedef struct Node{ int data; struct Node *next;}Node;typedef struct stack { //表示一个链表,但始终让其指向头部 Node *top; int count;}MyStack;//入栈MyStack* push(MyStack* myStack
2022-01-10 20:52:53
444
原创 数据结构-链表
#include<bits/stdc++.h>using namespace std;//数据结构小知识://抽象数据类型(ADT)是指由用户定义的、表示应用问题的数学模型,以及定义在这个模型上的一组操作的名称//具体包括三个部分:数据对象,数据对象上关系的集合,以及对数据对象基本操作的集合/* * ADT 抽象数据类型 { * 数据对象: <数据对象的定义> * 数据关系:<数据关系的定义> * 基本操作:<基本操作的定
2022-01-10 20:25:01
346
原创 不同排序算法的具体实现及比较
#include<bits/stdc++.h>using namespace std;int data[15];int m, n; //比较次数与移动次数//产生10个随机数,封装进数组void createData() { //产生随机数种子 srand((int)time(NULL)); for(int i=1; i<=10; i++) { data[i] = rand()%50; }}//直接插入排序void in
2022-01-06 00:26:13
299
原创 springboot-配置文件:关于自定义类绑定的配置提示
springboot-配置文件:关于自定义类绑定的配置提示我们在使用yml文件对自定义类属性进行赋值时,不会出现跟springboot自带的bean类似的提示,当以后bean数目多了之后就会对开发很不方便可见,输入na 并不会弹出name的提示此时,可以使用 spring-boot-configuration-processor<dependency> <groupId>org.springframework.boot</groupId> &
2021-12-27 16:41:17
185
原创 迷宫问题求解-DFS
先看问题描述分析对于该地图,我们可以创建一个稍微大点的二维数组,根据输入的n,m将有效的地图初始化为1同时,在输入障碍物坐标后,将其改为0。因此,我们可以不用考虑地图边界问题,因为无效地图在二维数组中的数值为0,已经表达了不能到达的意思。其他要注意的地方就是vis, 记住在什么时候对其进行修改就好了。别忘了这是能够进行回溯的;解题代码:#include <bits/stdc++.h>using namespace std;int n, m, t, sx, sy, fx, f
2021-12-15 17:35:23
165
原创 八皇后问题求解
问题描述八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。我们看洛谷上的该题描述大致思路1.按照行的顺序进行2.从第一列到最后一列进行枚举。判断当前列是否能够放置,如果不能,进行下一列的判断3.请结合注释了解相关具体过程代码解法一:#include <bits/stdc++.h>using
2021-12-14 16:52:18
311
原创 分解质因子
质因子的分解什么是质因子的分解所谓质因子的分解是指将一个大于1的正整数写成一个或多个质数的乘积例如6=23, 180=2233*5显然,最后都是关于多个质数的乘积,所以我们可以先打印出素数表准备好。具体分析1.由于每个质因子都可能不止出现过一次,因此我们不仅需要统计质因子数值,还要统计其出现的个数所以使用结构体比较方便struct factor { int x; //数值 int num; //个数}fac[10];因为考虑到 2 * 3 * 5 * 7 *
2021-12-12 21:58:01
915
原创 回文字符串的判断
#include <stdio.h>#include <string.h>//将字符串最大长度设置为maxn#define maxn 1024//函数功能:判断传入的字符串数组str是否为回文字符串//返回值:是回文字符串,返回1。否则,返回0int IsPalindrome(char str[]) { int len = strlen(str); int flag = 1; //将首个字符与最后一个字符对比 //第二个字符与倒数第二个字
2021-12-12 20:51:45
313
原创 素数总结(包含素数表)
素数总结一.素数的定义对于一个大于等于2的正整数n,如果从2,3,…n-1都没有一个数能够整除n,则n为素数二.素数的判断bool isPrime(int n) { if(n == 1) { return false; } for(int i=2; i<n; i++) { if(n%i == 0) { return false; } } return true;}由数学知
2021-12-12 19:56:07
1022
原创 总结 - 图
图一:图的表示1.邻接矩阵表示法int G[N][N];2.邻接表在一些顶点数目较多的时候最好使用邻接表来存储图//使用(可变数组)vector进行表示,十分方便。vector<int> Adj[5];//当要添加一个元素时,例,对于顶点1,添加到顶点3的一条路径Adj[1].push_back(3);如果要同时存储边的终点编号以及边值,使用结构体struct Node{ int v; //边的终点编号 int w; //边权 //这里我
2021-12-10 22:33:03
325
原创 日期差值问题
题目:输入两个日期(前后大小不确定),输出其差值例:输入:20211207 20211206输出:1分析:首先每个月份的天数是不一样的,没有规律,而且需要考虑平年还是闰年。如果硬算的话,需要考虑每个月天数程序会比较复杂。这里我们可以提前设置一个二维数组,记录平年闰年的不同月份所对应的天数,会简易很多。主体思想就是:首先对其进行拆分出年、月、日。设置一个记录天数差值的变量。整体一个while循环,结束条件是年月日都相同。首先day++, 判断是否超过本月天数上限,如果超过的话,进行一个轮转,d.
2021-12-09 23:17:54
337
原创 动态规划-最长连续不下降子序列
题目描述:在一个数列中,找到一个最长的子序列(可以不连续),使得这个子序列是不下降(即非递减的)举例:A={1,2,3,-1,-2,7,9} (下标从1开始),它的最长不下降子序列为{1, 2,3, 7,9}分析:将dp[i]表示为以A[i]结尾的最长的非递减子序列dp[i]默认值为1,即只有它一个元素对i之前的元素进行遍历,判断是否A[j]<=A[i]以及dp[i] > dp[j]+1如果是,则状态转移方程为 dp[i] = dp[j] + 1;上代码```c++/.
2021-11-29 19:20:21
466
原创 动态规划-最大连续子序列和
题目描述:给定一个数列A1,A2, A3…An,求i,j (1<=i<=j<=n),使得Ai+…+Aj最大,输出这个最大和样例:-2 11 -4 13 -5 -2显然11+(-4)+13 = 20分析:我们将状态dp[i]表示为以A[i]结尾的最大连续子序列和默认dp[i] = A[i], 如果dp[i] < dp[i-1] + A[i], 则dp[i]设置为dp[i-1]+A[i]即状态转移方程为 dp[i] = max(dp[i], dp[i-1]+A[i]).
2021-11-29 19:09:10
620
原创 动态规划-数楼梯
先看题:分析:首先,这是一道典型的斐波那契类似题,同时,题目还有着高精度和动态规划的标签。我们可以定义一个dp二维数组用来存放高精度数值。动态转移方程为: dp[k][i] = dp[k-1][i] + dp[k-2][i]#include<bits/stdc++.h>using namespace std;//len表示数值的总位数//定义一个二维数组。例如dp[n][*]代表到第n阶阶梯有这么多种走法int len=1, dp[5005][2000];void.
2021-11-27 23:47:53
341
原创 贪心算法-删数问题
分析: 我们可以先思考一下。当删除一个长数中的一个数字时,为了得到更小的一个数,是删除最大的那个数呢,还是删除最前面的那个“峰”呢?假设一个数为154389,当我们要删除一个数使其最小,如果是删除最大的数,则为15438;而如果是删除最前面的“峰”,则为14389。很明显,我们应选择后者;原因:当我们删除一个数时,不管是删除哪个位置上的,得到的数值的位数都相同的。这时如果要比较最小的,我们可以知道当靠前的位数比其他选择的数更小,就能得到更小的。依次类推,逐步除峰值即为所求。算法:首先将输入的字...
2021-11-24 09:08:54
4341
原创 贪心算法-排队接水
话不多说,先看题:分析: 我们先假设这个队伍有n个人,只分析最后一个人的话,他要等待的时间是前面所有人接水时间的总和,因此,我们可以肯定,时间最长的放到最后一个位置可以使得这个队伍的平均等待时间最小。下面在分析倒数第二个人,也可以知道这个人需要是接水时间第二长。依次类推。为了使整个队伍等待时间最小,即将队伍从小到大排列。#include<bits/stdc++.h>using namespace std;typedef struct{ int num; int.
2021-11-22 19:35:23
596
原创 贪心算法-小A的糖果盒
题目描述分析:首先判断第一个盒子里的糖果有没有超过最大和x, 如果超过则吃掉部分到达x。然后进行遍历,如果两盒数量之和大于x, 则吃掉后面一个盒子的部分糖果使总和不超过x。为什么是吃掉后一个盒子呢?因为这样可以使的下一轮的两个盒子数量之和更少。#include <bits/stdc++.h>using namespace std;int data[100000000];int main(){ long n, x; //糖盒数量, 最大和 long s.
2021-11-22 19:04:01
321
原创 HTML小案例-CSS3实现旋转太极图
HTML小案例-CSS3实现旋转太极图话不多说,先看效果** 以下为源代码 **<!doctype html><html lang="zh-cn"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0,
2021-08-19 13:25:26
197
原创 HTML小案例-CSS3实现旋转立方体
HTML小案例-CSS3实现旋转立方体话不多说,先看效果** 以下为源代码 **<!doctype html><html lang="zh-CN"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0,
2021-08-19 13:21:19
191
原创 HTML小案例-使用CSS3实现网页加载loding动画
HTML小案例-使用CSS3实现网页加载loding动画话不多说先看效果<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="UTF-8"> <title>CSS3实现loding动画</title> <style type="text/css"> *{ margin: 0; padding: 0; }
2021-08-19 13:05:15
224
原创 java中‘==’与‘.equals()‘的区别
java中比较大小经常会涉及到==与equals() 的使用。'==' 是作为java中的一个运算符,'equals'则是作为一种方法。这两者既有共同点,也具有一些区别。二者的使用主要有三种情况:①基本数据类型的比较②String,File,Date以及包装类等引用数据类型的比较③自定义类的比较1:基本数据类型的比较虽然java是面向对象的语言,但是基本数据类型并不属于java中的类。因此对于基本数据类型来说,不能使用equals()进行判断,只能使用“ ==”进行判断。int a =
2021-03-26 15:28:17
349
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人