自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

了解➔熟悉➔掌握➔精通

为之,则难者亦易矣;不为,则易者亦难矣。

  • 博客(1122)
  • 收藏
  • 关注

原创 MySQL的索引是如何实现的

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.netMySQL中索引分三类:B+树索引、Hash索引、全文索引。InnoDB存储引擎中用的是B+树索引。要介绍B+树索引,不得不提二叉查找树、平衡二叉树和B树这三种数据结构。B+树是从它们三个演化来的。二叉查找树:图中为user表建立了一个二叉查找树的索引。节点中存储了键(key)和数据(data)。数据对应user表中的行数据。如果查找id=12

2022-01-04 21:39:17 27877 20

原创 五笔打字简明教程(86版)

1、汉字的构成中国人常说:“木子--李”,“日月--明”,可见方块汉字是由较小的块组成的,这些小块如:“木”、“子”、“日”、“月”等,我们把它们叫“五笔字根”。五笔输入法的五笔字根有120多个,它们分布在键盘的25个键上,如“木”在“S”键,“子”在“B”键,“李”字的打法就是按“S”和“B”两键再按空格就可打出“李”字;同理,“日”在“J”键,“月”在“E”键,“明”字的打法就是按“J”和“E”两键再按空格就可打出“明”字。五笔字根表见下图。五笔字根2、汉字的笔画字根又是由基本笔画

2022-01-03 21:58:53 4613 1

原创 Java-ThreadLocal(看这一篇就够了)

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net1、什么是ThreadLocalThreadLocal class provides thread-local variables. These variables differ from their normal counterparts in that each thread that accesses one (via its get or set

2020-12-17 15:13:09 12455 1

原创 Java-通俗易懂地理解HashMap的原理

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net一、HashMap的节点HashMap是一个集合,键值对的集合,源码中每个节点用Node<K,V>表示。 static class Node<K,V> implements Map.Entry<K,V> { final int hash; final K key;

2020-11-25 18:27:44 11847

原创 Java-理解volatile关键字(看这一篇就够了)

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net一、内存模型如果一个变量在多个CPU中都存在缓存(一般在多线程编程时才会出现),那么就可能出现缓存不一致的问题。缓存不一致性问题通常有以下2种解决方法:1、通过在总线加LOCK锁的方式CPU和其他部件进行通信都是通过总线来进行的,当总线上发出了LCOK锁的信号,那么只有等待代码完全执行完毕之后,其他CPU才能从变量所在的内存读取变量,然后进行相

2020-08-10 16:22:32 11904

原创 Linux安装JDK8

​分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击人工智能教程​https://www.captainai.net/准备:下载好JDK8的安装包:jdk-8u351-linux-x64.tar.gz1.新建一个存放安装包的文件夹:mkdir /usr/local/java2.将下载的安装包上传到该文件夹3.解压安装包:tar -zxvfjdk-8u351-linux-x64.tar.gz4.修改配置文件/etc/profile,配置环

2024-04-09 19:43:42 193 1

原创 MobaXterm使用Lrzsz上传下载文件(rzsz)

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击人工智能教程​https://www.captainai.net/解决方法去官网(https://mobaxterm.mobatek.net/plugins.html)下载2个插件。关闭MobaXterm,将下载的2个文件复制到MobaXterm安装目录下。测试上传和下载上传文件:输入rz回车,在空白地方按住ctrl+鼠标右键选择"Send file using Z-mode

2024-04-09 16:25:31 356

原创 树中两个结点的最低公共祖先-C++

// 面试题68:树中两个结点的最低公共祖先// 题目:输入两个树结点,求它们的最低公共祖先。#include #include #include using namespace std;struct TreeNode{ int m_nValue; std::vector m_vChildren;};TreeNode *CreateTreeNode(int value){ TreeNode

2024-03-02 14:12:28 542

原创 把字符串转换成整数-C++

// 面试题67:把字符串转换成整数// 题目:请你写一个函数StrToInt,实现把字符串转换成整数这个功能。当然,不// 能使用atoi或者其他类似的库函数。#include long long StrToIntCore(const char *str, bool minus);enum Status{ kValid = 0, kInvalid};int g_nStatus = kValid;int StrToInt(const char *st

2024-03-02 14:03:38 606

原创 构建乘积数组-C++

// 面试题66:构建乘积数组// 题目:给定一个数组A[0, 1, …, n-1],请构建一个数组B[0, 1, …, n-1],其// 中B中的元素B[i] =A[0]×A[1]×… ×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。#include #include using namespace std;void BuildProductionArray(const vector &input, vector

2024-03-02 13:56:58 441

原创 分布式文件系统MinIO

​分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击人工智能教程https://www.captainai.net/前言我们的系统离不开文件存储系统,因为系统会存储各种文件,所以选择一个好的文件存储系统是十分有必要的,我们选择文件系统一般需要看其使用是否简单,是否可靠,对各种环境是否适配,社区是否活跃,分布式等。随着云的普及,现在很多云厂商提供了文件存储服务,比如OSS。我们的文件由云厂商进行托管,我们只需要按时按量付费,这就是SAAS模式。使用OS

2024-02-29 16:48:17 1011

原创 不用加减乘除做加法-C++

// 面试题65:不用加减乘除做加法// 题目:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、×、÷// 四则运算符号。#include int Add(int num1, int num2){ int sum, carry; do { sum = num1 ^ num2; carry = (num1 & num2)

2024-02-25 21:31:38 481

原创 求1+2+…+n-C++

// 面试题64:求1+2+…+n// 题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case// 等关键字及条件判断语句(A?B:C)。#include // ====================方法一====================class Temp{public: Temp() { ++N; Sum += N; } static void R

2024-02-25 21:25:19 467

原创 股票的最大利润-C++

// 面试题63:股票的最大利润// 题目:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖交易该股// 票可能获得的利润是多少?例如一只股票在某些时间节点的价格为{9, 11, 8, 5,// 7, 12, 16, 14}。如果我们能在价格为5的时候买入并在价格为16时卖出,则能// 收获最大的利润11。#include int MaxDiff(const int *numbers, unsigned length){ if (numbers == nul

2024-02-25 21:16:40 410

原创 圆圈中最后剩下的数字-C++

// 面试题62:圆圈中最后剩下的数字// 题目:0, 1, …, n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里// 删除第m个数字。求出这个圆圈里剩下的最后一个数字。#include #include using namespace std;// ====================方法1====================int LastRemaining_Solution1(unsigned int n, unsigned int

2024-02-25 15:58:40 457

原创 扑克牌的顺子-C++

// 面试题61:扑克牌的顺子// 题目:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。// 2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王可以看成任意数字。#include #include int Compare(const void *arg1, const void *arg2);bool IsContinuous(int *numbers, int length){ if (numbers =

2024-02-25 13:31:03 434

原创 n个骰子的点数-C++

// 面试题60:n个骰子的点数// 题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s// 的所有可能的值出现的概率。#include #include int g_maxValue = 6;// ====================方法一====================void Probability(int number, int *pProbabilities);void Probability(int ori

2024-02-25 10:30:50 481

原创 队列的最大值-C++

// 面试题59(二):队列的最大值// 题目:给定一个数组和滑动窗口的大小,请找出所有滑动窗口里的最大值。例如,// 如果输入数组{2, 3, 4, 2, 6, 2, 5, 1}及滑动窗口的大小3,那么一共存在6个// 滑动窗口,它们的最大值分别为{4, 4, 6, 6, 6, 5},#include #include #include using namespace std;template class

2024-02-25 10:23:56 435

原创 滑动窗口的最大值-C++

// 面试题59(一):滑动窗口的最大值// 题目:给定一个数组和滑动窗口的大小,请找出所有滑动窗口里的最大值。例如,// 如果输入数组{2, 3, 4, 2, 6, 2, 5, 1}及滑动窗口的大小3,那么一共存在6个// 滑动窗口,它们的最大值分别为{4, 4, 6, 6, 6, 5},#include #include #include using namespace std;vector maxInWindows(cons

2024-02-25 10:18:28 428

原创 左旋转字符串-C++

// 面试题58(二):左旋转字符串// 题目:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。// 请定义一个函数实现字符串左旋转操作的功能。比如输入字符串"abcdefg"和数// 字2,该函数将返回左旋转2位得到的结果"cdefgab"。#include #include void Reverse(char *pBegin, char *pEnd){ if (pBegin == nullptr || pEnd == null

2024-02-25 09:37:46 419

原创 翻转单词顺序-C++

// 面试题58(一):翻转单词顺序// 题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。// 为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",// 则输出"student. a am I"。#include #include void Reverse(char *pBegin, char *pEnd){ if (pBegin == nullptr || pEnd == nullptr

2024-02-25 09:32:28 359

原创 和为s的连续正数序列-C++

// 面试题57(二):和为s的连续正数序列// 题目:输入一个正数s,打印出所有和为s的连续正数序列(至少含有两个数)。// 例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以结果打印出3个连续序列1~5、// 4~6和7~8。#include void PrintContinuousSequence(int small, int big);void FindContinuousSequence(int sum){ if (sum < 3)

2024-02-25 09:21:18 458

原创 和为s的两个数字-C++

// 面试题57(一):和为s的两个数字// 题目:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们// 的和正好是s。如果有多对数字的和等于s,输出任意一对即可。#include bool FindNumbersWithSum(int data[], int length, int sum, int *num1, int *num2){ bool found = false; if (length

2024-02-25 09:14:48 414

原创 数组中唯一只出现一次的数字-C++

// 面试题56(二):数组中唯一只出现一次的数字// 题目:在一个数组中除了一个数字只出现一次之外,其他数字都出现了三次。请// 找出那个只出现一次的数字。#include #include int FindNumberAppearingOnce(int numbers[], int length){ if (numbers == nullptr || length

2024-02-24 14:12:21 421

原创 数组中只出现一次的两个数字-C++

// 面试题56(一):数组中只出现一次的两个数字// 题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序// 找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。#include unsigned int FindFirstBitIs1(int num);bool IsBit1(int num, unsigned int indexBit);void FindNumsAppearOnce(int data[], int leng

2024-02-24 14:07:11 434

原创 平衡二叉树-C++

// 面试题55(二):平衡二叉树// 题目:输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中// 任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。#include struct BinaryTreeNode{ int m_nValue; BinaryTreeNode *m_pLeft; BinaryTreeNode *m_pRight;};BinaryTreeNode *CreateBinaryTreeNode(i

2024-02-24 14:01:32 367

原创 二叉树的深度-C++

// 面试题55(一):二叉树的深度// 题目:输入一棵二叉树的根结点,求该树的深度。从根结点到叶结点依次经过的// 结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。#include struct BinaryTreeNode{ int m_nValue; BinaryTreeNode *m_pLeft; BinaryTreeNode *m_pRight;};BinaryTreeNode *CreateBinaryTreeNode(

2024-02-24 12:55:34 1110

原创 二叉搜索树的第k个结点-C++

// 面试题54:二叉搜索树的第k个结点// 题目:给定一棵二叉搜索树,请找出其中的第k大的结点。#include struct BinaryTreeNode{ int m_nValue; BinaryTreeNode *m_pLeft; BinaryTreeNode *m_pRight;};BinaryTreeNode *CreateBinaryTreeNode(int value){ BinaryTreeNode *pNode = ne

2024-02-24 12:49:40 407

原创 数组中数值和下标相等的元素-C++

// 面试题53(三):数组中数值和下标相等的元素// 题目:假设一个单调递增的数组里的每个元素都是整数并且是唯一的。请编程实// 现一个函数找出数组中任意一个数值等于其下标的元素。例如,在数组{-3, -1,// 1, 3, 5}中,数字3和它的下标相等。#include int GetNumberSameAsIndex(const int *numbers, int length){ if (numbers == nullptr || length

2024-02-24 12:42:53 388

原创 0到n-1中缺失的数字-C++

// 面试题53(二):0到n-1中缺失的数字// 题目:一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字// 都在范围0到n-1之内。在范围0到n-1的n个数字中有且只有一个数字不在该数组// 中,请找出这个数字。#include int GetMissingNumber(const int *numbers, int length){ if (numbers == nullptr || length

2024-02-24 12:34:16 509

原创 数字在排序数组中出现的次数-C++

// 面试题53(一):数字在排序数组中出现的次数// 题目:统计一个数字在排序数组中出现的次数。例如输入排序数组{1, 2, 3, 3,// 3, 3, 4, 5}和数字3,由于3在这个数组中出现了4次,因此输出4。#include int GetFirstK(const int *data, int length, int k, int start, int end);int GetLastK(const int *data, int length, int k, int

2024-02-24 12:29:40 395

原创 两个链表的第一个公共结点-C++

// 面试题52:两个链表的第一个公共结点// 题目:输入两个链表,找出它们的第一个公共结点。#include #include #include struct ListNode{ int m_nValue; ListNode *m_pNext;};ListNode *CreateListNode(int value){ ListNode *pNode = new ListNode(); pNode

2024-02-20 21:46:39 536

原创 数组中的逆序对-C++

// 面试题51:数组中的逆序对// 题目:在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组// 成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。#include int InversePairsCore(int *data, int *copy, int start, int end);int InversePairs(int *data, int length){ if (data == nullptr || length < 0)

2024-02-20 21:38:38 366

原创 字符流中第一个只出现一次的字符-C++

// 面试题50(二):字符流中第一个只出现一次的字符// 题目:请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从// 字符流中只读出前两个字符"go"时,第一个只出现一次的字符是'g'。当从该字// 符流中读出前六个字符"google"时,第一个只出现一次的字符是'l'。#include #include #include using namespace std;class CharStatistics{public

2024-02-19 21:20:18 403

原创 字符串中第一个只出现一次的字符-C++

// 面试题50(一):字符串中第一个只出现一次的字符// 题目:在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出// 'b'。#include #include char FirstNotRepeatingChar(const char *pString){ if (pString == nullptr) return '\0'; const int tableSize = 256; uns

2024-02-19 21:11:47 445

原创 丑数-C++

// 面试题49:丑数// 题目:我们把只包含因子2、3和5的数称作丑数(Ugly Number)。求按从小到// 大的顺序的第1500个丑数。例如6、8都是丑数,但14不是,因为它包含因子7。// 习惯上我们把1当做第一个丑数。#include // ====================算法1的代码====================bool IsUgly(int number){ while (number % 2 == 0) numbe

2024-02-19 21:04:50 526

原创 最长不含重复字符的子字符串-C++

// 面试题48:最长不含重复字符的子字符串// 题目:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子// 字符串的长度。假设字符串中只包含从'a'到'z'的字符。#include #include // 方法一:蛮力法bool hasDuplication(const std::string &str, int position[]);int longestSubstringWithoutDuplication_1(const st

2024-02-19 20:09:09 389

原创 礼物的最大价值-C++

// 面试题47:礼物的最大价值// 题目:在一个m×n的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值// (价值大于0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向左或// 者向下移动一格直到到达棋盘的右下角。给定一个棋盘及其上面的礼物,请计// 算你最多能拿到多少价值的礼物?#include #include int getMaxValue_solution1(const int *values, int rows, int col

2024-02-19 20:00:26 606

原创 把数字翻译成字符串-C++

// 面试题46:把数字翻译成字符串// 题目:给定一个数字,我们按照如下规则把它翻译为字符串:0翻译成"a",1翻// 译成"b",……,11翻译成"l",……,25翻译成"z"。一个数字可能有多个翻译。例// 如12258有5种不同的翻译,它们分别是"bccfi"、"bwfi"、"bczi"、"mcfi"和// "mzi"。请编程实现一个函数用来计算一个数字有多少种不同的翻译方法。#include #include using namespace s

2024-02-19 19:53:02 368

原创 把数组排成最小的数-C++

// 面试题45:把数组排成最小的数// 题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼// 接出的所有数字中最小的一个。例如输入数组{3, 32, 321},则打印出这3个数// 字能排成的最小数字321323。#include "cstdio"#include #include int compare(const void *strNumber1, const void *strNumber2);// int型整数用十进

2024-02-18 21:36:16 413

空空如也

空空如也

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

TA关注的人

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