自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 django.db.utils.OperationalError: (......(using password: NO)“)

django.db.utils.OperationalError: (1045, “Access denied for user ‘root’@‘localhost’ (using password: NO)”)python – django.db.utils.OperationalError:(1045:用户’root’@’localhost’拒绝访问(使用密码:NO)在mysql控制台中运行以下命令,将密码加密方法更改为Mysql中的旧版本(在Mysql 8.0中更改为使用cha2)mysql -

2021-08-05 10:09:13 272

原创 Unable to find “...\setuptools-40.8.0-py3.7.egg\EGG-INFO“ when adding binary and data files

Unable to find “e:\pythonenv\dataspider\lib\sit-packages\setuptools-40.8.0-py3.7.egg\EGG-INFO” when adding binary and data files.错误解决方法:setuptools的版本太低了,升级版本就好了,点击File-settings-project:xxx-Project interpreter-点击然后install package即可...

2021-07-26 00:24:31 3413

原创 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号

public class Solution { public int Add(int num1,int num2) { while(num2!=0){ int c=(num1 & num2)<<1; num1^=num2; num2=c; } return num1; }}连接地址

2021-03-03 00:00:29 211

转载 日期插件原生js库Calendar.js (附demo下载)

链接:提取码:jc96

2021-01-27 23:50:47 1135

原创 smartupload.jar文件包下载

smartupload.jar包是一款重要的组件,主要针对jsp开发而成,功能完善,操作简单,能帮助用户处理下载文件出行的中文乱码等问题。下载地址:添加链接描述提取码:phfpsmartupload.jar功能1、能对上传的文件在大小、类型等方面做出限制。如此可以滤掉不符合要求的文件。2、在JSP文件中仅仅书写三五行java代码就可以搞定文件的上传或下载,方便。3、smartupload.jar包可以能全程控制上传。使用jspSmartUpload组件提供的对象及其操作方法,可以获得全部上传

2021-01-27 23:43:21 3751 2

原创 java.sql.SQLException: Column ‘XXXX ‘ not found.

这种异常多是结果集的地方有误:ResultSet rs=null;rs.getInt(“cate_id”),rs.getString("cate_name "), 比如我这里多了一个空格就报错了,所以检查一下结果集获取属性值的位置,可能是多了个什么符号之类的。...

2021-01-24 16:47:12 1121 1

原创 求第n位的斐波那契数

写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。0 1 1 2 3 5 8 13 21…输入:n = 2输出:1输入:n = 5输出:5int fib(int n) { if(n<2) { return n; } int f1=0;int f2=1; for(int i=2;i<=n;i++) { int temp=f

2020-09-25 11:27:04 349

原创 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则(C++实现)

/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { if(pHead1==NULL) return pHead2; if(

2020-09-15 20:51:13 142

原创 输入一个链表,反转链表后,输出新链表的表头(C++实现~~~~~~~~~)

/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* ReverseList(ListNode* pHead) { ListNode* temp=NULL; ListNode* pre=NULL; while(pHead!=N

2020-09-15 12:10:07 215

原创 输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。

思路:如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响。举个例子:一个二进制数1100,从右边数起第三位是处于最右边的一个1。减去1后,第三位变成0,它后面的两位0变成了1,而前面的1保持不变,因此得到的结果是1011.我们发现减1的结果是把最右边的一个1开始的所有位都取反了。这个时候如果我们再把原来的整数和减去1之后的结果做与运算,从原来整数最右边一个

2020-09-15 10:27:51 752

原创 内存分区模型(代码区、全局区、栈区、堆区)

内存分区模型C++程序执行时,将内存大方向划分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放,存放函数的参数值,局部变量等堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收内存四区意义:不同区域存放的数据,赋予不同的生命周期,给我们更大的灵活编程代码区(在程序编译后,生成了exe可执行程序,未执行该程序前分为两个区域:代码区、全局区)存放CPU执行的机器指令代码区是共享的,共享的目的是对于

2020-09-01 10:29:12 266

原创 指针的使用(常量指针、指针常量、空指针、野指针)

指针的基本概念指针的作用:可以通过指针间接访问内存内存编号是从0开始记录的,一般用十六进制数字表示可以利用指针变量保存地址指针变量的定义和使用指针变量定义语法:数据类型 * 变量名;(指针就是一个地址)int a=10;int *p;p=&a;等价于int a=10;int *p=&a;运行结果:int a=10;int *p=&a;*p=1000;cout<<"p="<<p<<endl;cout&lt

2020-08-14 16:43:38 241

原创 回溯法与分支限界法(装载问题)

分支限界法和回溯法都属于搜索算法,但是他们的搜索策略是不同的。分支限界法=广度优先搜索(BFS)+剪枝函数,回溯法=深度优先搜索(DFS)+剪枝函数回溯法(找出满足约束条件的所有解),分枝限界法(找出满足约束条件的一个解或特定意义下的最优解)装载问题(有两艘船,载重量分别是c1、 c2,n个集装箱,重量是wi (i=1…n),且所有集装箱的总重量不超过c1+c2。确定是否有可能将所有集装箱全部装入两艘船。)解题思路:1.首先将第一艘船尽可能装满2.将剩余的集装箱装上第二艘船(将第一艘船尽可能装满

2020-08-12 18:01:49 1917

原创 使用1-9这9个数字,组成三个三位数,使两数之和等于第三个数(回溯法)

#include<stdio.h>#include<math.h>#define N 100int A[N]={0};int visited[N];int used[N]={0};int count=1;int num=0;bool check(int x,int y,int z){ if(x+y==z) return true; else return false;}void solve(int step){ int a,b,c; a=.

2020-08-09 10:26:32 2675 1

原创 回溯法之图的m着色问题(着色问题、算法)

四色问题:任何一张地图只用四种颜色就能使具有共同边界的国家着上不同的颜色。图的m着色问题由四色问题引申而来,研究如何用m种颜色为地图着色。给定无向连通图G和m种不同的颜色,用这些颜色为图G的各顶点着色,每个顶点着一种颜色,如果有一种着色方案使中种每条边的两个顶点着不同的颜色,则称图是m可着色的,求出所有不同的着色方案。数据结构设计:1.用二维数组A[N]N[]存储图G,A[i][j]=1,表示节点i和节点j之间连通.2.用一位数组colors[N]存储图的一种着色方案,colors[t]=i,表示节

2020-08-08 17:43:19 3020

原创 递归法之汉诺塔

#include<stdio.h>#include<string.h>#include<stdlib.h>int step=1;void move(int i,char a,char b){ printf("%d from %c to %c step:%d\n",i,a,b,step++);}void hannoi(int n,char a,char b,char c){ if(n>0) { hannoi(n-1,a,c,b); mo

2020-08-08 16:21:53 86

原创 回溯法值素数环的问题

素数环问题:将从1到n这n个整数围成一个圆环,若其中任意2个相邻的数字相加,结果均为素数,那么这个环就成为素数环。输入一个正整数n(n<=16),输出所有的素数环(规定第一个数字是1)。#include<stdio.h>#include<math.h>#define N 100int a[N]={0};//用来表示环int visited[N];//记录1-n的使用情况,0未使用,1使用int n;int count;//判断一个数是不是素数bool ch

2020-08-08 15:39:25 398

原创 回溯法之N皇后问题(四皇后)

回溯法(英语:backtracking)是暴力搜寻法中的一种。回溯法采用试错的思想,它尝试分步的去解决一个问题。在分步解决问题的过程中,当它通过尝试发现现有的分步答案不能得到有效的正确的解答的时候,它将取消上一步甚至是上几步的计算,再通过其它的可能的分步解答再次尝试寻找问题的答案。n皇后问题:就是nxn的国际象棋棋盘上,逐行放置皇后,要求每一行,每一列,每一条斜线都只能放置一个皇后。回溯过程分析:1.从空棋盘起,逐行放置棋子2.每在一个布局中放下一个棋子,即推演到一个新的布局3.如果当前行上没

2020-08-08 10:39:05 5790 1

原创 回溯法之马的遍历问题(递归)

马的遍历问题:在n*m的棋盘上,马只能走日字。马从位置(x,y)处出发,把棋盘的每一点都走一次,且只走一次,找出所有路径。问题分析:行n,列m,马在不出边界的情况下有8个方向可以行走(走日字),如当前坐标为(x,y),则行走后的坐标可以为:(x+1,y+2) (x+1,y-2), (x+2,y+1) (x+2,y-1)(x-1,y-2) (x-1,y+2) (x-2,y-1) (x-2,y+1)回溯法算法设计: 搜索空间是nM个点,约束条件是不出边界且每个点只经过一次,节点的扩展规则如上所述。搜

2020-08-07 16:09:21 3923 1

原创 贪心算法之prim算法/Kruskal算法(最小生成树)

n个节点最少n-1条边能构成连通图(n个节点,其中任意两个节点都连通的图),最多n(n-1)/2边。树是没有环路的连通图n个节点,n-1条边组成的权值最小的树为最小生成树。prim算法最小生成树算法,时间复杂度T(n)=O(V^2) V为顶点数目,受边的影响不大,适合于边比较多的图(稠密图),在稀疏图时,Kruscal复杂度更低,我们可以使用堆优化的prim算法达到与Kruscal一样的复杂度。prim算法设计思路(O(N^2)):1.任意选定一点s(通常选择第一个点),设集合S={s}2.从不

2020-08-04 09:20:38 1685

原创 贪心算法-活动安排问题的求解(sort函数)

贪心算法贪心算法是指对问题进行求解时,在每一步选择中都采取最好或者最优(最有利)的选择,从而希望最终的结果是最好或者最优的算法,由局部最优推到全局最优。贪心算法比动态规划效率更高,在能用贪心的情况下,就不要搬起石头砸自己的脚。贪心里面最关键的部分就是最优子结构性质和贪心选择性质,满足这两个要求才能使用贪心算法。贪心算法可以解决的问题:活动安排问题、部分背包问题、最优装载问题、单源最短路径问题、最小生成树问题等。活动安排问题(该问题要求高效地安排一系列争用某一公共资源的活动) 步骤:1.按结束时间

2020-07-30 15:52:48 1347

原创 c语言中const的使用

2020-07-30 15:18:00 90

原创 背背背包包包问题(0-1背包、完全背包、多重背包)

#include<stdio.h>#include<stdlib.h>#include<iostream>#define max(a,b) a>b?a:bfloat temp[100]={0};int dp[100][100]={0};int d[100]={0};using namespace std;//例1://n=5 c=10//w=2,2,6,5,4//v=6,3,5,4,6//输出15//例2://n=4 c=5//wi

2020-07-29 17:40:01 87 1

原创 两个整数相除输出浮点数

#include<stdio.h>int main(){ int a,b; scanf("%d %d",&a,&b); float c; c=(float)a/b;//强制类型转换 printf("%.2f\n",c);//%.2f表示输出2位小数 float arr[10]={0}; for(int i=0;i<5;i++) { arr[i]=(float)i/3; } for(int

2020-07-29 17:39:23 4673

原创 输出n个元素(每个元素存在或者不存在)一共2^n种情况下的0-1串

#include<stdio.h>#define N 100#define max(a,b) a>b?a:bint a[N]={0};int dp[10][10]={0};//输出n个元素一共2^n种情况下的0-1串void SubCollection(int len){ int i,j,k; int num=1<<len; for(i=0;i<num;i++) { j=i; k=0; while(j) { if(j&

2020-07-29 15:26:16 85

原创 0-1背包问题(动态规划求解、公式求解、穷举法、回溯法求解)

#include<stdio.h>#include<stdlib.h>#define max(a,b) a>b?a:b#define min(a,b) a<b?a:b#define N 100int a[N]={0};int temp[N]={0};int dp[N][N]={0};int m[N][N]={0};//0-1背包问题 //穷举法 时间复杂度T(n)=O(2^n)//每个物品选或者不选一共2^n种情况void BagProblem

2020-07-29 12:25:26 638

原创 二分查找元素((key)下标(返回key的下标、第一个大于(等于)key的下标、第一个小于(等于)key的下标)

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2020-07-28 15:16:49 1003

原创 最长递增子序列的长度求解并打印(动态规划)

设b[i]是在a[i]为单调递增子序列最后一个元素时,所得最长递增子序列的长度为:设计思路:1.a数组存储原始数据2.b数组存储对应最长上升子序列长度(比如i=3时,a[i]=3,在i<3中寻找比3小的元素,有1,则b[3]=1+1=2,比如i=5时,a[i]=9,在i<5中寻找比9小的元素,有1,3,5,7比较得到这些满足条件中的b[i]最大值,为3,则b[5]=3+1=4)使用pre数组存储最长上升子序列当前元素的上一个元素的下标#include<stdio.h&gt

2020-07-25 18:11:39 1880

原创 求一个集合的所有子集(c语言)

如果一个集合的元素个数为n,则每个元素都有存在或不存在两种情况,n个元素一共2^n种情况,因此元素个数为n的集合一共有2的n次方个子集。算法1:利用二进制的思想 如 0110 1001,0表示该数组位置不选,1表示选中。加入数组为[1,2,3,4] 0110就表示[2,3] 1001表示[1,4]例如:求arr[4]={1,2,3,4}的所有子集用for(i=0;i<16;i++)遍历这16种情况,每一个i的值,例如i=3,则二进制数为0011,我们从右边往左遍历(最右边为低位0),即001

2020-07-24 19:02:59 8465 2

原创 (&&)逻辑与、(&)按位与运算、(||)逻辑或、(|)按位或运算

&&表示逻辑与,即and,当符号(&&)两边的结果都为真时,整个运算结果为真,如果有一边为假则结果为假。通常表示为:if(条件1 && 条件2)、while(条件1 && 条件2)等,&&属于短路操作,即如果第一个表达式为假,则不再计算第二个表达式。另外:(0 && 23)结果为0;(12 && -12)结果为1;&表示按位与,即将 & 两侧的数用二进制展开,每一位都

2020-07-24 17:33:12 1684

原创 求解最大字段和

算法1:穷举法,对所有的(i,j)对,顺序求和a[i]+…a[j]并比较出较大的和算法2:分治法,将数组分成左右两半,分别计算左边的最大和、右边的最大和、跨边界的最大和,然后比较其中的最大者。算法3:动态规划法#include<stdio.h>#include<string.h>//穷举法求出所有子段和的情况,比较得到较大值 O(n^3)void Sum(int *arr,int len){ int sumNum=0; int maxNum=-100000;

2020-07-24 15:08:20 355

原创 动态规划、递归求解最长公共子序列

递归:指通过重复将问题分解为同类的子问题而解决问题的方法,递归的逻辑简单,但是内存占用大。分治策略:将原问题分解为若干个规模较小但类似于原问题的子问题(分),递归求解这些子问题,然后再合并这些子问题的解来建立原问题的解(治)。动态规划:动态规划其实和分治策略是类似的,也是将一个原问题分解为若干个规模较小的子问题,递归的求解这些子问题,然后合并子问题的解得到原问题的解。不同在于动态规划解决了重叠子问题,避免子问题在求解之后再次求解而产生更多的时间消耗。所以分治策略一般用来解决子问题相互对立的问题,

2020-07-23 17:21:22 1395

原创 使用分治思想求出n个元素中的最大值

基本思路:1.可以将这n个元素分成两组,分别求出两组的最大值,然后将这两组的最大值进行比较,进而求出全部元素的最大值2.如果每一组中的元素多于两个,则再用上述方法继续分为两组,直至每一组至多只包含两个元素为止。#include<stdio.h>#include<stdlib.h>#include<time.h>void Merge(int *arr,int low,int high,int &max){ int mid; int LeftMax

2020-07-20 17:54:06 2343

原创 (int)类型和(int &)类型的区别

int a的意思是定义一个变量aint &a意思是定义一个引用 可以说是一个变量的别名,在定义时必须绑定到一个变量。比如:int i = 0;int& n = i;n++;这时i = 1,而不是i=0;int &一般用在函数参数中,比如交换两个数:#include<stdio.h>void swap1(int &a,int &b){ int temp; temp=a; a=b; b=temp;}void swap2(

2020-07-20 17:47:33 4130

原创 数据库系统之查询处理与优化

查询处理的过程第一步就是语法分析器与翻译器处理,对SQL查询语句进行语法验证,保证查询语句的正确性,然后将SQL查询语句翻译为可使用的形式第二步是将SQL查询语句翻译为系统对应的内部表示形式,即关系代数表达式第三步就是对关系代数表达式进行优化,找出最优的效率最高的关系代数表达式第四步根据这个关系代数表达式制定好执行计划(执行计划是指执行一个查询的计算机原语,也就是说它是标注了如何...

2020-04-29 00:26:11 955

原创 数据库系统之物理设计

数据库中数据的存放方式一个数据库被映射到多个不同的文件,而这些文件由底层的操作系统来维护,这些文件会永久地存放在磁盘上,一个文件在逻辑上组织成记录的一个序列,这些记录映射到磁盘上。每个文件被分成定长地存储单元-块(block),块是数据存储和传输的基本单位(默认一般是4-8kB),一个块可以包括很多记录,且一个记录的数据不能跨块存储。定长记录和变长记录的区别定长记录是指文件中所有记录的长度...

2020-04-22 00:38:16 2966

原创 关系模式设计优化(数据库学习重点,难点)

关系模型潜在的问题1.添加异常(当在关系中添加数据时可能会导致数据的不一致)2.修改异常(随意的修改关系中的一行记录也可能导致数据的不一致)3.删除异常(当删除一定数量的记录时可能会导致一些其他信息的丢失)4.数据冗余(主要是关系中存在了相互之间的约束依赖,使得某一属性的值确定后,另一个属性的值也就确定了)坏关系当关系中存在约束,特别是函数依赖,导致冗余,异常等发生就是一个坏关系,如果...

2020-04-04 14:14:35 8219

原创 第一范式 第二范式 第三范式 BCNF范式

范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,满足不同程度要求的为不同范式。不同范式之间的包含关系为:第一范式(1NF)数据库表中的字段都是单一属性的,不可再分。例子:录入学生信息表:【学生】(姓名,学号,性别,住址)在实际注册信息登记时,经常会有家庭住址和现住址,那么这种表结构设计是不符合1NF的。要达到满足1NF的设计,就需要把住址拆分为两列,即:【学...

2020-03-28 10:36:28 711

原创 Flooding、Gossiping、SPIN、DD路由、Rumor路由这五个协议的区别和联系

Flooding协议(洪泛路由协议)Flooding协议是一种传统的广播路由协议,当环境中某一传感器结点检测或接收到数据时,无条件的将数据转发给自己的邻居结点,适用于对数据可靠性要求较高的应用场景。Gossiping路由协议(闲聊路由协议)Gossiping协议在Flooding协议的基础上演变而来,改进在于数据包被随机转发给某几个相邻节点,并非所有相邻节点,这在一定程度上控制信息内爆问题。...

2020-03-23 00:27:18 7123

原创 最全的基础SQL语法/学习要点

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。在SQL中建立关系模式结构:可以使用"create table"命令定义SQL关系可用以下几条命令创建department关系(院系):create table department( ...

2020-03-20 18:31:35 727

空空如也

空空如也

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

TA关注的人

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