自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 详解数据库中主键、索引以及两者之间的区别

主键 主键:primary key用来唯一的约束该字段里面的数据,不能重复,不能为空,一张表中最多只能有一个主键,主 键所在的列通常是整数类型。 一个可能被忽略的问题:数据库表中必须有主键吗? 答案是否定的。数据库中的表可以不要主键。 主键的作用 保证实体的完整性; 加快数据库的操作速...

2020-04-01 17:10:22 133 0

原创 MySQL表的相关约束操作

MySQL中表的约束有很多,这里主要介绍以下几个: null/not null,default,comment,zerofill,primary key,auto_increment,unique key,foreign key 1.空属性 两个值:null(默认的)和not null(...

2020-02-27 12:02:05 124 0

原创 MySQL库的相关操作

1.创建数据库 语法: CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...] create_specification: [DEFAULT] CHARACTER ...

2020-02-26 20:43:58 137 0

原创 常见八大排序算法的分析实现与总结

排序的概念 在实现排序算法之前,我们需要对排序的相关概念有一个清楚的理解。 排序:排序就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假设在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i...

2020-02-23 12:03:06 112 0

原创 socket网络编程详解以及实现一个简单的UDP、TCP网络程序

socket常见的API 1.int socket(int domain,int type,int protocol); 头文件: #include<sys/types.h> #include<sys/socket.h> 解释: soket()打开一个网络通讯...

2020-02-21 17:58:44 102 0

原创 哈希结构以及用哈希结构实现unordered_map和unordered_set

哈希的概念 unordered系列的关联式容器之所以效率比较高,是因为底层使用了哈希结构。那么问题来了,什么是哈希呢? 顺序结构和平衡树中,元素关键码与其存储位置之间没有对应关系,因此在查找一个元素时,必须要经过关键码的多次比较。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O(logN...

2020-02-12 15:37:23 121 0

原创 LeetCode-两句话中的不常见单词

题目描述: 给定两个句子A和B。(句子是一串由空格分隔的单词。每个单词仅由小写字母组成。) 如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。 返回所有不常用单词的列表。 您可以按任何顺序返回列表。 示例 1:输入:A = "this ...

2020-02-10 21:50:16 49 0

原创 set和map的底层模拟实现

STL总共实现了两种不同结构的管理式容器:树型结构与哈希结构。树型结构的关联式容器主要有4种:map、set、multimap、multiset。这四种容器的共同点是:使用平衡搜索树(红黑树)作为其底层结构,容器中的元素是一个有序的序列。 1.map的介绍 map是关联容器,它是按照特定的次...

2020-02-09 22:52:03 89 0

原创 用C++实现红黑树的插入操作以及红黑树的验证

1.红黑树的概念 红黑树是一种二叉搜索树,并且每个结点上增加了一个存储表示结点的颜色,可以是Red或Black。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径的长度长出两倍,因而是近似平衡的。 2.红黑树的性质(重要) 每个结点的颜色不是红色就是黑...

2020-02-07 16:29:34 72 0

原创 LeetCode-二叉树的最近公共祖先

题目描述: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉树:root =[...

2020-02-05 23:45:04 53 0

原创 剑指offer-连续子数组的最大和

题目描述: 例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和。 class Solution { public: int FindGreatestSumOfSubArray(vector&l...

2020-02-01 22:26:24 53 0

原创 LeetCode-反转字符串II

题目描述: 给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符,则将剩余的所有全部反转。如果有小于 2k 但大于或等于 k 个字符,则反转前 k 个字符,并将剩余的字符保持原样。 示例: 输入: s = "abc...

2020-01-31 21:59:03 73 0

原创 LeetCode-二叉树的右视图

题目描述: 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例: 输入:[1,2,3,null,5,null,4] 输出:[1, 3, 4] 解释: 1 <--- / \ 2 3 <--- \ \ 5...

2020-01-30 18:00:46 66 0

原创 LeetCode-找出不含重复元素数组子集

题目描述: 给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] cla...

2020-01-30 17:52:37 108 0

原创 LeetCode-逆波兰表达式求值

题目描述: 根据逆波兰表示法,求表达式的值。 有效的运算符包括+,-,*,/。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 说明: 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 示例1: 输入: ["...

2020-01-29 16:53:52 51 0

原创 LeetCode-最短无序连续子数组

题目描述: 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 你找到的子数组应是最短的,请输出它的长度。 示例 1: 输入: [2, 6, 4, 8, 10, 9, 15] 输出: 5 解释: 你只需要对 [6, 4, 8, 10,...

2020-01-29 16:50:12 44 0

原创 LeetCode-压缩字符串

题目描述: 给定一组字符,使用原地算法将其压缩。 压缩后的长度必须始终小于或等于原数组长度。 数组的每个元素应该是长度为1的字符(不是 int 整数类型)。 在完成原地修改输入数组后,返回数组的新长度。 进阶: 你能否仅使用O(1) 空间解决问题? 示例 1: 输入: ["...

2020-01-28 23:42:20 59 0

原创 LeetCode-验证回文串

题目描述: 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true 示例 2: 输入: ...

2020-01-28 23:32:10 45 0

原创 LeetCode-字符串转换整数

题目描述: 请你来实现一个atoi函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接...

2020-01-26 17:33:23 81 0

原创 LeetCode-二进制求和

题目描述: 给定两个二进制字符串,返回他们的和(用二进制表示)。 输入为非空字符串且只包含数字1和0。 示例1: 输入: a = "11", b = "1" 输出: "100" 示例2: 输入: a = "1010&q...

2020-01-26 16:08:24 68 0

原创 LeetCode-第三大的数

题目描述: 示例 1: 输入: [3, 2, 1] 输出: 1 解释: 第三大的数是 1. 示例 2: 输入: [1, 2] 输出: 2 解释: 第三大的数不存在, 所以返回最大的数 2 . 示例 3: 输入: [2, 2, 3, 1] 输出: 1 解释: 注意,要求返回第三大...

2020-01-22 22:54:26 46 0

原创 LeetCode-加一

题目描述: 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例1: 输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。...

2020-01-22 22:46:45 47 0

原创 LeetCode-寻找数组的中心索引

题目描述: 给定一个整数类型的数组nums,请编写一个能够返回数组“中心索引”的方法。 我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。 如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。 ...

2020-01-21 22:07:11 55 0

原创 LeetCode-按奇偶排序数组

题目描述: 给定一个非负整数数组 A,返回一个数组,在该数组中,A 的所有偶数元素之后跟着所有奇数元素。 你可以返回满足此条件的任何数组作为答案。 示例: 输入:[3,1,2,4] 输出:[2,4,3,1] 输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。...

2020-01-21 21:58:37 1113 0

原创 最难的问题(密文转原文)

题目描述: NowCoder首次发明了密码,用于军队的消息传递。假设你是军团中的一名军官,需要把发送来的消息破译出来、并提供给你的将军。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A 都分别替换成字母F),其他字符不 变,并且消息原文的所有...

2020-01-20 22:09:44 139 0

原创 LeetCode-仅仅反转字母

题目描述: 给定一个字符串S,返回“反转后的”字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。 示例 1: 输入:"ab-cd" 输出:"dc-ba" 示例 2: 输入:"a-bC-dEf-ghIj" 输出:&q...

2020-01-20 22:08:21 50 0

原创 LeetCode-有序数组的平方

题目描述: 给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 示例 1: 输入:[-4,-1,0,3,10] 输出:[0,1,9,16,100] 示例 2: 输入:[-7,-3,2,3,11] 输出:[4,9,9,49,121] 提示: ...

2020-01-20 22:05:03 42 0

原创 LeetCode-长按键入

题目描述: 你的朋友正在使用键盘输入他的名字name。偶尔,在键入字符c时,按键可能会被长按,而字符可能被输入 1 次或多次。 你将会检查键盘输入的字符typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回True。 示例 1: 输入:name = &quo...

2020-01-19 22:13:37 58 0

原创 LeetCode-存在重复元素

题目描述: 给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。 示例 1: 输入: [1,2,3,1] 输出: true 示例 2: 输入: [1,2,3,4] 输出: false 示例3: 输...

2020-01-19 22:11:39 43 0

原创 LeetCode-合并两个有序数组

题目描述: 给定两个有序整数数组nums1 和 nums2,将 nums2 合并到nums1中,使得num1 成为一个有序数组。 说明: 初始化nums1 和 nums2 的元素数量分别为m 和 n。 你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元...

2020-01-18 21:34:47 50 0

原创 LeetCode-最后一个单词的长度

题目描述: 给定一个仅包含大小写字母和空格' '的字符串 s,返回其最后一个单词的长度。 如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。 如果不存在最后一个单词,请返回 0。 说明:一个单词是指仅由字母组成、不包含任何空格的 最大子字符串。 示例: ...

2020-01-18 21:32:59 76 0

原创 LeetCode-回文数

题目描述: 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 ...

2020-01-15 21:38:04 49 0

原创 LeetCode-赎金信

题目描述: 给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成。如果可以构成,返回 true ;否则返回 false。 (题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组...

2020-01-15 21:35:43 57 0

原创 LeetCode-移除元素

题目描述: 给定一个数组 nums和一个值 val,你需要原地移除所有数值等于val的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1: 给定 n...

2020-01-14 21:49:23 57 0

原创 LeetCode-搜索插入位置

题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 1: 输入: [1,3,5,6], 5 输出: 2 示例2: 输入: [1,3,5,6], 2 输出: 1 示例 3: ...

2020-01-14 21:46:43 45 0

原创 LeetCode-旋转数组

题目描述:给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。 示例 1: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] ...

2020-01-13 21:17:32 71 0

原创 剑指offer-二进制中1的个数

题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 这里可以提供三种思路: 思路一: 先判断整数二进制表示中最右边以为是不是1。接着把输入的整数右移一位,此时原来处于从右边暑期的第二位被移到最有边了,再判断是不是1,这样每次移动一位,直到整个整数变为0为止。现在的问...

2019-12-20 22:45:39 42 0

原创 剑指offer-矩形覆盖

题目描述: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 思路: 我们可以让n先从0开始,当n==0时,显然返回0,;当n==1时,有两种方式,即可以是横着放的一行两列的矩形,也可是竖着放的两行一列的矩形;当...

2019-12-20 21:30:35 42 0

原创 Linux编译器-gcc使用和调试器-gdb使用

gcc的使用 gcc的四个翻译过程 gcc如何完成翻译过程 格式:gcc [选项] 要翻译的文件 [选项] [目标文件] 1.预处理阶段(进行宏替换) 主要功能:进行宏替换,头文件包含,条件编译,去注释等 预处理指令是以#号开头的代码行 实例:gcc -E hello.c -o...

2019-11-17 14:46:53 106 0

原创 C++中栈的运用(OJ题)

最小栈 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x)-- 将元素 x 推入栈中。 pop()-- 删除栈顶的元素。 top()-- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例: MinStack minSt...

2019-11-17 14:45:58 94 0

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