自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 hashMap,Put函数详细过程

前言照着源码重新认认真真的流程过了一遍,主要说的是链表的插入过程,红黑树的过程没有讲,权当自己复习所用。hashMap PUT 函数详细过程在jdk1.8中,一进来只有一句话 return putVal(hash(key), key, value, false, true)。hash(key)函数就是 key为空则返回0,否则是key.hashCode ^ key.hashCode >>> 16hash值计算完了就进入到putVal中。第一个if是判断table == nul

2021-12-20 17:20:25 444

原创 小学生都会的字符串逆置-位运算版

字符串逆置-位运算文章目录字符串逆置-位运算字符串逆置算法位运算交换解析字符串逆置算法字符串逆置的算法其实很简单,就是原地修改,使用双指针进行交换,如下图对a和f进行交换,然后left++,right=right-1,一轮交换后如下图那么这一切和位运算有什么关系呢?其实和位运算有关系的是在交换部分,先给上完整代码 char[] solve(char[] s) { int left=0; int right=s.length-1; w

2021-11-23 21:31:50 296

原创 Mysql-innoDB锁总结

Mysql-innoDB锁总结对innoDB锁进行一个总结复习共享锁与排他锁共享锁(S 锁):其他事务可以读,但不能写。排他锁(X 锁) :其他事务不能读取,也不能写。意向锁和表锁innoDB为了支持在不同粒度上加锁,所以支持一种额外的加锁方式。什么意思呢,首先意向锁是一个不会与行锁冲突的表级锁。其次,意向锁之间,即IS与IX之间是互相兼容的。那它们互相兼容有什么作用呢?其实意向锁主要是和表级的S锁和X锁互斥,意向锁的作用就是告诉表级锁,这张表里面已经有细粒度的锁的,比如行级的X锁。那么,

2021-11-18 16:23:13 357

原创 HashMap put(),resize()解析

HashMap put(),resize()解析查看的源码是jdk1.8版本,这里对jdk1.7的HashMap不详细讨论map常量讲解:首先,先看看HashMap定义的常量前三个分别是默认容量=16,最大容量=2^30,默认的负载因子=0.75。当map里的节点大小大于总容量*负载因子时,会进行扩容。后三个分别是树化长度=8,退化长度=6,以及最小的树化容量=64。jdk1.8中,HashMap的实现是数组加链表加红黑树,当链表长度大于等于8,进行树化,但是首先还要Map的容量大于最小树化容

2021-11-11 21:15:18 416

原创 ArrayList扩容解析

ArrayList扩容查看的ArrayList源码是JDK1.8版本首先,对于ArrayList扩容,当调用无参构造new一个ArrayList时,此时size=0,数组为空。如果指定了数组大小的构造函数,或者是指定了collection元素的列表,这两个构造函数,初始值size就是自定义的了。然后当执行add方法时可以看到,一定会先执行ensureCapacityInternal方法,参数叫做minCapacity(最小容量)=size+1。而ensureCapacityInternal()还

2021-11-09 11:29:21 191

原创 最小生成树-加边法

最小生成树_加边法一、最小生成树是什么?二、加边法加边法代码一、最小生成树是什么?最小生成树是图论中一个经典的问题,是指一个连通图中如何做到保留n-1条边并且权值和最小的同时依旧是连通图。当然,如果是不连通的图,也可以在每个连通分支都生成一颗最小生成树,那么这个生成出来的n个最小生成树也可以看成是“最小生成森林”二、加边法最小生成树有两种经典算法,一种是加点法,一种是加边法。加边法相对而言更容易理解,也就是每回找最小权值的边,如果该边与之前的边不形成回路,则添加该边,直到找到了n-1条边。所

2020-12-12 20:29:29 2258 1

原创 Class类浅解

Class类浅解正文:话不多说,先放个图 每个具体的Class,都有一个唯一的类对象与之对应,具体在图中表示为类对象。这些唯一的类对象的‘类’,也就是java.lang.Class类。而每个类都可以有许多的对象,也就是我们一开始学的类与对象。本质上这就是三个层次,对java.lang.Class类来说,普通的类的对象相对于它来说,就是我对象的对象。我们也可以用祖父,父亲和孩子来一一对应。不过static修饰的属性,方法,静态代码块等就不太一样了。它们只会存在一个或执行一次(静态代码块)。对于静态的成

2020-10-27 17:11:11 191

原创 并查集

并查集知识点小结前言:今天回顾了一下并查集的知识点,顺便找到一篇关于并查集讲解的有趣的博客,要学习并查集的话可以去看看这篇博客,链接在此(https://blog.csdn.net/qq_41593380/article/details/81146850)。或者去B站找视频看看。代码如下:```cpp#include<bits/stdc++.h>using namespace std;#define IOS ios::sync_with_stdio(0);cin.tie(0);co

2020-09-19 10:59:27 77

原创 2020-09-12

图的建立,vector容器+图的遍历前言:最近开始学习图论了,就先把图的基本知识记下来,其余的看代码,有注释。```cpp#include<iostream> #include<algorithm>#include<cstring>#include<vector> #include<queue>#include<set> #include<cstdio>#define IOS ios::sync_wi

2020-09-12 10:24:52 70

原创 前缀最小值

前缀最小值前言:写这篇博客是因为在牛客练习赛68的A题不知道前缀和还可以这么玩,所以就想记录一下前缀和的另一个用法。正文:题目链接:添加链接描述。对于条件,有n个ai,0≤ai​<n 且 ai 互不相同。说明序列是一个值为从0到n-1的n个自然数,(如 n=3, 则无论顺序是什么,序列一定为0,1,2或0,2,1或1,2,0等)。所以一个区间内最小未出现的自然数就等于不在这个区间内最小出现的自然数。这个时候就是用到前缀最小值和后缀最小值了前缀最小值维护的是从初始位置到当前位置的最小值,如pr

2020-09-06 17:22:52 1282

原创 链表中下一个更大节点

链表中下一个更大节点#include<stdio.h>#include<stdlib.h>typedef int elemtype;typedef struct _node{ elemtype data; //加一个节点下标 int idx; struct _node *next;}Node;typedef struct { Node *hea...

2019-12-24 20:00:02 217

原创 每日温度

每日温度#include<stdio.h>#include<stdlib.h> typedef int elemtype;typedef struct { elemtype a[20]; elemtype idx[20]; //记录下标 int top;}Stack;Stack* InitStack(){ Stack *s=(Stack *)m...

2019-12-23 16:38:27 153

原创 最小栈

最小栈#include<stdio.h>#include<stdlib.h>#define MAX 30typedef int elemtype;typedef struct { elemtype a[30]; int top;}Stack;Stack* InitStack(){ Stack *s=(Stack *)malloc(sizeof(S...

2019-12-18 18:57:45 86

原创 队列

队列#include<stdio.h>#include<stdlib.h>typedef char elemtype;typedef struct _queue{ elemtype data; struct _queue *next;}Queue;typedef struct{ Queue *front; Queue *rear;}LinkQueue...

2019-12-17 20:32:53 80

原创 螺旋矩阵

##螺旋矩阵#include<stdio.h>#include<stdbool.h>int main(){ int n; scanf("%d",&n); int a[n][n]; int i=0; int j=0; int s=1; for(i=0;i<n;i++) for(j=0;j<n;j++) a[i][j]=0;...

2019-12-13 17:24:15 95

原创 股票问题

股票问题题目描述:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。来源:力扣(LeetCode)#include<stdio.h>#include<stdlib.h>int main()...

2019-12-11 15:44:09 117

原创 大数相乘

大数相乘#include<stdio.h>#define N 1000int mylen(char *a){ int i=0; while(a[i]!='\0') { i++; } return i;}int main(){ char a[N]; char b[N]; int num_1[N]; int num_2[N]; int sum[N...

2019-12-08 19:54:02 71

原创 泰波那契数列-大数相加

泰波那契数列-大数相加#include<stdio.h>#define N 1000int main(){ int a[N]={0}; //泰波那契数列前三个 0,1,1 int b[N]={1}; int c[N]={1}; int t[N]={0}; int i,n; scanf("%d",&n); int j; int g=0; int ...

2019-12-06 15:11:02 224

原创 链表的选择排序

链表的选择排序#include<stdio.h>#include<stdlib.h>#include<stdbool.h>typedef struct _node{ int number; struct _node *next;}Node;typedef struct{ Node *head; Node *tail;}List;vo...

2019-12-05 15:12:13 128

原创 将链表逆置

将链表逆置#include<stdio.h>#include<stdlib.h> #include<stdbool.h>typedef struct _node{ int number; struct _node *next;}Node;typedef struct { Node *head; Node *tail;}List;vo...

2019-12-04 15:50:19 200

原创 将两个有序链表合并成一个有序链表

将两个有序链表合并成一个有序链表#include<stdio.h>#include<stdlib.h>#include<stdbool.h>typedef struct _node{ int number; struct _node *next;}Node;typedef struct{ Node *head; Node *tail;}L...

2019-12-03 16:44:16 1129

原创 归并排序

归并排序#include<stdio.h>void Sort_Message(int *a,int *teamp,int start,int end);void Merge_Sort(int *a,int *teamp,int start,int mid,int end);int main(){ int a[9]={3,23,54,1,564,23,1,0,65};...

2019-12-01 11:27:49 62

原创 在指定位置插入和删除节点

在指定位置插入和删除节点#include<stdio.h>#include<stdlib.h>#include<stdbool.h>typedef struct _node{ int number; struct _node *next;}Node;typedef struct{ Node *head; Node *tail;}List;...

2019-11-30 10:34:51 825

原创 链表-删除

链表-删除#include<stdio.h>#include<stdlib.h>typedef struct _node{ int num; struct _node *next;}Node;typedef struct{ Node *head; Node *tail; }List;void add(List *plist);void...

2019-11-29 15:50:34 132

原创 链表-结构体list

链表-结构体list#include<stdio.h>#include<stdlib.h> typedef struct node{ int num struct node *next; //指向 struct node 类型的指针 }Node;typedef struct _list{ Node *head; //用list结构来在函数中...

2019-11-24 17:25:48 662

原创 取石子

取石子#include<stdio.h>int main(){ int num,m,i=0; scanf("%d %d",&num,&m); if(num%(m+1)==0) { printf("lose"); } else { printf("win "); while((num%(m+1)+(m+1)*i)<=num) ...

2019-11-23 08:41:46 101

原创 mylen()

sda

2019-11-23 08:36:28 424

原创 结构体数组-getstruct()与putstruct()

结构体-getstruct()#include<stdio.h>typedef struct point{ int x; int y;}PI; //起别名PIvoid getstruct(PI *p); //设置一个输入与输出函数void putstruct(PI *P);int main(){ PI p1; getstruct(&p1...

2019-11-22 20:44:39 1218

空空如也

空空如也

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

TA关注的人

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