自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java抽象类和接口异同点

Java抽象类和接口异同点抽象类要点提示:抽象类不可以用于创建对象。抽象类可以包含抽象方法,这些方法将在具体的子类中实现。在继承的层次结构中,每个新的子类都使类变得更加明确和具体。如果从一个子类向父类追溯,类就会变得更通用、更加不明确。类的设计应该确保父类包含它的子类的共同特征。有时候,一个父类设计得非常抽象,以至于它都没有任何具体的实例。这样的类称为抽象类(abstract class)。抽象类和常规类很像,但是不能使用new操作符创建它的实例。抽象方法只有定义而没有实现。它的实现由子类提供。

2021-12-10 16:29:16 231

原创 Polymorphism

多态多态意味着父类型的变量可以引用子类型的对象继承关系使一个子类能继承父类的特征,并且附加一些新特征。子类是它的父类的特殊化,每个子类的实例都是其父类的实例,但是反过来不成立。例如:每个圆都是一个几何对象,但并非每个几何对象都是圆。因此,总可以将子类的实例传给需要父类型的参数。考虑以下程序中的代码。public class PolymorphismDemo { public static void main(String[] args) { displayObject(ne

2021-11-26 16:01:25 326

原创 Java正则学习记录

正则表达式语法java中需要用\\来表示\正则表达式匹配.任意单个字符,除了换行(ab | cd)ab或者cd[abc]a、b或者c[^acb]除了a、b或者c外的任意字符[a-em-p]a到e或者m到pa-e&&[c-p]]a到e与c到p的交集\d一个数字(大写D表示非数字)\w单词字符\s空白字符p*0或者多次出现模式p(p中有多个元素要用括号括起来,,下面同理)p+1或者多次出现模

2021-10-29 16:11:24 132

原创 vscode配置java并用git上传GitHub

一. 用vscode配置java上网下载JDK配置文件(不多赘述),下载过程中看清JDK下载到本地电脑的地址在编辑系统环境变量中在系统变量中新建JAVA_HOME变量,变量值为JDK所在地址

2021-09-29 10:12:52 275

原创 2021-02-02

背包问题一.0/1背包1.问题模型:给定N个物品,其中第i个物品的体积为Vi,价值为Wi。有容积为M的背包,要求选择一些物品放入背包,使得物品总体积不超过M的前提下,物品的总体积最大。2.dp[i,j]=Max(dp[i-1,j],dp[i-1,j-Vi]+Wi)memset(dp, 0xcf, sizeof(dp)); //-inff[0][0] = 0;for (int i = 1; i <= n; i++) { for (int j = 0; j <= m; j++) {

2021-02-02 20:09:19 102

原创 2021-01-30

最短路一.任意两点间的最短路径(Floyd)借用了动归的思想,d[i,j]保存i到j 的最短路长度动态转移方程:d[ i , j ]=min(d[ i , j ],d[ i, k ]+d[ k , j ])void floyd(int n) { for (int k = 1; k <= n; k++) { for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { dis[i][j] = Min(d

2021-01-30 19:02:10 207

原创 2021-01-26

贪心一.思想:就是走一步看一步,每一步选取当前面临的最优选择,但是这样的目光是短浅的比如说一个二叉树,只能选择一个子树上的数进行相加然后从选择的子树出发,继续向下找,求最大总和用贪心的思想你会选择19,然后再选择2。事实上这不是最大的,17-4-100的这条路才是最大的,所以贪心是“目光短浅的”选用贪心需要满足两个特征:1.最优子结构。就是说,从局部最优能扩展到全局最优2.贪心选择性质。问题的整体最优解可以通过一系列的局部最优的选择来得到。二。常见问题1.活动安排问题例题hdu-2037

2021-01-26 16:24:20 123 1

原创 2021-01-26

线段树一.让你求最区间的区域和之类的其他(或者其他满足交换律的)二.权值线段树。1.就是用一个桶(数组)来装一个区间的数在出现的次数添加void add(int l, int r, int v, int x) { if (l == r)f[v]++;//f[]用来存x出现的次数 else { int mid = (l + r) / 2; if (x <= mid)add(l, mid, v << 1, x); else add(mid + 1, r, v <

2021-01-26 00:05:10 61

原创 2021-01-23

搜索一.三种图的存储方式1.邻接矩阵:适合稠密图,但是十分浪费空间,并且存储的时间复杂度高2.邻接表适用于规模大的稀疏图,存储复杂度为O(V+E)使用STL的vecto来存储//定义边struct edge { int from, to, w; edge(int a, int b, int c) { from = a; to = b; w = c; }};vector<edge>e[MAXN];//初始化for (int i = 1; i <= n; i

2021-01-24 09:22:51 98 1

原创 2021-01-23

1-22二分法一.1:while(l<r)时l=mid的时候,mid=(l+r+1)>>1;r=mid-1;r=mid的时候,mid=(r+l)>>1;l=mid+1;不然就会进入死循环,从而超时这种情况都是会把logn取满的;2.在序列是升序的情况下:upper_bound(start,last,n):返回的是被查序列中第一个大于n的指针;lower_bound(start,last,n):返回的是查序列中第一个大于等于n的指针在序列是降序的情况下:low

2021-01-23 00:45:32 368

原创 2021-01-21

1-21并查集一.基础知识(不多赘述)1.查询;2.合并;(并查集擅长动态维护许多具有传递性的关系)二.两大并查集:1.扩展域并查集。2:边带权并查集1.POJ-1182(食物链)本题选用扩展域的方法;把每个动物拆成三个节点,同类域self,捕食域eat,天敌域enemy;若“x与y是同类”,说明”x的同类“与“y的同类”一样,同理x,y的捕食域与天敌域也是一样的,所以只要合并x,y的self,eat,enemy同理若“x吃y”就合并x_eat与y_self,x_self与y_enemy

2021-01-21 17:58:03 105 1

原创 2021-01-20

1.20的STL学习一.string1.strlen()的复杂度为o(n),而.length()的复杂度为o(1);2.find()函数的用法:string s1("11123456");int p = -1;//寻找所有的"1"的位置while (s1.find("1", p + 1) != -1) {//如果找不到find()行数返回-1 p = s1.find("1", p + 1); cout << p << "\n";}二.erase的使用误区se

2021-01-20 20:26:19 132 1

空空如也

空空如也

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

TA关注的人

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