自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mysql -- 表的约束

理论上,上面的例子,我们不创建外键约束,就正常建立学生表,以及班级表,该有的字段我们都有。auto_increment:当对应的字段,不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值+1操作,得到一个新的不同的值。在公司中,需要一个员工管理系统,员工表中有2条信息,一个是身份证,一个是员工号,选择身份证作为主键,设计员工工号时不能有重复的,所以需要唯一键。在创建表的时候,在所有字段之后,使用primary key(主键字段列表)来创建主键,如果有多个字段作为主键,可以使用复合主键。

2022-09-06 21:08:44 776 11

原创 Mysql -- 表的操作

create table users ( id int, name varchar(20) comment ‘用户名’,在以后,我们可能会修改某个表的结构,例如:字段名字、字段大小等。还会添加字段、删除字段等。这时我们就需要修改表。password char(32) comment ‘密码是32位的md5值’,passwold对应列的数据也都被删除了,所以要慎重。字符集、校验规则、存储引擎根据需求修改即可。可以发现插入新字段后对原来的数据没有影响。修改name,将长度改为30。将name列修改为姓名。

2022-09-04 11:05:46 180 1

原创 Mysql -- 数据库库的操作

如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_对应的数据库文件夹被删除,级联删除,里面的数据表全部被删。现在是已经删掉了,恢复语法:source + 你备份的地方。对数据库的修改主要指的是修改数据库的字符集,校验规则。比如我备份自己的test1数据库。下面看校验规则对数据库的影响;数据库内部看不到对应的数据库。实例:创建名为g1的数据库。.

2022-08-31 20:39:18 83 8

原创 leetcode18. 四数之和

还是用双指针,再三数之和的基础上再加一个循环。,要求不重复,首先还是要先对数组进行排序,遇到相同的。,且a

2022-08-26 09:45:41 100 2

原创 leetcode19. 删除链表的倒数第 N 个结点

这道题和链表中的倒数第K个结点解法差不多,用快慢指针。因为会涉及到操作头结点,所以我们用虚拟头结点,这样会方便很多。

2022-08-25 09:40:17 113

原创 leetcode.16 --- 最接近的三数之和

和15题的思路基本是一样的,这道题目不用去重。

2022-08-24 15:46:16 190

原创 leetcode.15 --- 三数之和

看了英雄哥的代码加的细节:可以先将答案数组先开好空间,如果数组个数小于3或者第一个数大于0,最后一个数小于0直接返回,如果第1个数和最后一个数都是0,则返回3个0.首先想到的方法就是暴力解法,直接3层循环,肯定是不行的,

2022-08-23 17:00:59 109

原创 leetcode.14 --- 最长公共前缀

代码如下:

2022-06-25 14:42:46 143 7

原创 leetcode.13 --- 罗马数字转整数

代码如下:

2022-06-24 14:54:23 103 1

原创 leetcode.12 --- 整数转罗马数字

代码如下:

2022-06-24 11:57:40 87 1

原创 leetcode.11 --- 盛最多水的容器

代码如下:代码如下:为什么双指针可以解决,可以看题解给出的证明即可。

2022-06-22 08:53:39 54

原创 leetcode.40 --- 组合总和(||)

代码如下:

2022-06-20 20:27:06 57

原创 leetcode.1 --- 两数之和

代码如下:使用哈希表代码如下:

2022-06-12 22:14:26 67

原创 leetcode.39 --- 组合总和

代码如下:

2022-06-11 19:42:34 67 1

原创 ---排列数字---

题解:图示:代码如下:

2022-06-10 17:37:54 59 4

原创 leetcode.38 ---外观数列

外观数列动图演示

2022-06-09 19:17:08 69

原创 leetcode.36 --- 有效的数独

代码如下:

2022-06-09 07:35:13 57

原创 leetcode.35---搜索插入位置

代码如下:

2022-06-08 07:03:06 59 2

原创 leetcode.34. 在排序数组中查找元素的第一个和最后一个位置

二分查找

2022-06-07 08:17:48 69 2

原创 leetcode.33 --- 搜索旋转排序数组

1.暴力查找2.二分查找

2022-06-05 20:40:55 58 1

原创 LeetCode.20-----有效的括号

有效的括号栈的应用

2022-06-04 09:56:49 48 1

原创 leetcode.9 --- 回文数

回文数解法一解法二

2022-06-02 18:19:00 48 2

原创 leetcode.8 --字符串转换整数 (atoi)

字符串转整数

2022-06-01 10:23:06 40 3

原创 leetcode.7 --整数反转

整数反转题目链接:https://leetcode.cn/problems/reverse-integer/题解:代码如下:class Solution {public: int reverse(int x) { int r = 0; while(x) { if(r > 0 && r > (INT_MAX - x % 10) / 10) return 0;

2022-05-31 18:31:27 33 2

原创 leetcode2.两数相加

两数相加题目链接题解:跟前面写过的高精度加法一样的,这里可以new一个虚拟头结点,就不用特判当链表为空的情况了。设t为进位,l1的每个结点+l2的每个结点+进位t,每个结点需要添加的值是(l1+l2+t)%10,t /= 10,当2个链表走到完且进位也处理完循环结束。代码如下:class Solution {public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode* dumm

2022-05-30 10:00:28 45 2

原创 数组模拟队列

模拟队列int q[N];存元素int hh = 0;//队头int tt = -1;//队尾题目链接代码如下:#include<iostream>using namespace std;const int N = 100010;int q[N],hh,m;int tt = -1; int main(){ cin>>m; while(m--) { string s; int x;

2022-05-29 09:33:40 41 1

原创 数组模拟栈

模拟栈数组模拟栈应用在算法题中,特点是快。我们需要一个数组,和栈顶元素的索引,数组的末尾插入删除是很快的。题目链接代码如下:#include<iostream>#include<string>using namespace std;const int N = 1000010;int st[N];int tt = -1;//栈顶元素的索引int m;int main(){ string s; int x; cin>>m

2022-05-29 08:20:59 23

原创 数组模拟双链表

模拟双链表初始化在a的右边插入结点x在a的左边插入结点x删除结点a实战例题初始化这篇是模拟单链表的数组模拟单链表,这次偷个懒,0表示头,1表示尾,相当于2个哨兵。void init(){ R[0] = 1; L[1] = 0; index = 2;}在a的右边插入结点x代码如下://在a的右边插入xvoid insert(int a,int x){ e[index] = x; R[index] = R[a]; L[index

2022-05-27 10:15:10 79 4

原创 数组模拟单链表

单链表初始化头插在下标为k的结点后插入x删除k的后一结点头删例题实战

2022-05-26 18:00:59 68 5

原创 力扣392---判断子序列

判断子序列双指针的应用双指针的应用题目链接:点击直达题解:双指针解决动图演示:代码如下:class Solution {public: bool isSubsequence(string s, string t) { int m = s.length(), n = t.length(); int i = 0,j = 0; while(i < m && j <n) {

2022-05-25 12:26:47 48 4

原创 离散化求区间和(C++)

离散化离散化例题实战离散化离散化,把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。也就是离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。例题实战https://www.acwing.com/problem/content/804/题解步骤:a[N]存数据,s[N]存前缀和,vector < int > alls存数据离散化映射的下标,vector <pair<int,i nt >>add,query要加上c和询问

2022-05-24 10:40:33 74 4

原创 差分(前缀和的逆运算)

差分一维差分差分数组的作用实战例题二维差分一维差分差分:是前缀和的逆运算差分数组:有了数组b,就可以在O(n)得到数组a差分数组的作用问题:输入一个长度为 n 的整数序列。接下来输入 m 个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加上 c。暴力的解法是遍历区间[l,r],每次再进行m次操作,时间复杂度是O(mn),若给的数据很多,可能就过不掉了。下面用差分数组进行优化,数组a是数组b的前缀和,我们对数组b的b[i]操作就会影响数组a的a[i]及后面

2022-05-22 17:09:54 90 1

原创 前缀和(一维和二维)

前缀和前缀和概念一维数组的前缀和一级目录前缀和概念前缀和概念:数组该位置之前的元素之和重点:在进行前缀和的运算时,下标从1开始,设数组的a[0] = 0例如:a[3] = {0 ,1 , 2 , 3}a[1]的前缀和: a[1]a[2]的前缀和:a[1] + a[2]…下标从1开始,边界好处理,且设为0不影响结果。前缀和的作用:快速求出数组中某段区间的和。一维数组的前缀和给定一个长度为n的序列,有m次询问,每次询问输入(l,r),求出每次的(l,r)区间的和。我们很快就可以想到

2022-05-22 09:36:35 51 2

原创 高精度加减乘除(C++)

高精度运算高精度+高精度高精度-高精度高精度*低精度高精度/低精度高精度+高精度实际上高精度就是说参与运算的数据和运算结果的范围,超出标准数据类型能表示的数据大小范围的运算。这个时候,如果要得到正确的计算结果,显然不能依靠普通方法实现了,需要使用高精度的计算了。重点:1.使用字符来存储数据2.将字符串从后向前存,因为加法可能有进位,数组在末尾是很容易插入数据的高精度加法题目链接,点击直达高精度-高精度高精度*低精度高精度/低精度...

2022-05-19 20:40:14 227 2

原创 【leetcode】剑指 Offer 50. 第一个只出现一次的字符(C++)

第一个只出现一次的字符题目链接:https://leetcode.cn/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof/题解:把字符串全部存进哈希表,查找哈希表,出现一次的返回即可,这道题没什么难度class Solution {public: char firstUniqChar(string s) { unordered_map<char,int> CountMap; for(au

2022-05-16 15:56:38 115 1

原创 【leetcode】剑指offer21 ---调整数组顺序使奇数位于偶数前面(C++)

调整数组顺序使奇数位于偶数前面首尾双指针快慢双指针首尾双指针题目链接:https://leetcode.cn/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof/调整数组中奇数偶数元素的位置,我们可以想到双指针,左指针从左向右查找偶数,右指针从右向左查找奇数,然后交换。这个思想跟快排的思想一样,一个从左边查找比key(一般选数组左边的值)大的,右边找比key值小的,交换完后,数组就是有序的。动

2022-05-15 08:44:36 56 4

原创 【leetcode】剑指offer04 ---二维数组的查找(C++)

二维数组的查找暴搜优化暴搜题目链接:https://leetcode.cn/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/直接暴力解法,遍历二维数组,找到等于target的返回true,没找到返回false,注意数组为空的情况代码如下:class Solution {public: bool findNumberIn2DArray(vector<vector<int>>& matrix, int ta

2022-05-14 12:52:47 176 6

原创 【leetcode】剑指offer03 ---数组中重复的数字(C++)

数组中重复的数字3种解法数组中重复的数字数组中重复的数字题目链接:https://leetcode.cn/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/题解一:排序+遍历数组代码如下:class Solution {public: int findRepeatNumber(vector<int>& nums) { sort(nums.begin(),nums.end()); f

2022-05-13 11:15:15 209 2

原创 来几道简单的题(C++)

二叉搜索树的第k大节点二叉搜索树的最近公共祖先和为s的两个数字扑克牌中的顺子

2022-05-09 12:18:38 212 14

原创 假期过完,来刷点Top-K的OJ题

最小的k个数数据流中的中位数数组中的第K个最大元素

2022-05-05 14:38:09 435 32

空空如也

空空如也

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

TA关注的人

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