【人工智能高频面试题--基本篇】

🚀 作者 :“码上有前”
🚀 文章简介 :人工智能高频面试题
🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬

在这里插入图片描述

在这里插入图片描述

人工智能高频面试题--基本篇

  • 1.深度学习和过往的神经网络训练方法有什么区别?列举几种深度学习的 loss function,并说明意义
  • 2. 什么是卷积神经网络?请说明卷积的意义
  • 3. 什么是中文分词? 列举出几种你所知的分词方法
  • 4. 现在深度学习在 nlp 领域有哪些应用? 请具体说明
  • 5.传统图像处理提取的 sift 特征是什么意思?
  • 6. 什么叫过拟合,避免过拟合都有哪些措施?
  • 7.LR 和 SVM 的联系与区别是什么?
  • 8. 给你一个有 1000 列和 1 百万行的训练数据集,这个数据集是基于分类问题的。经理要求你来降低该数据集的维度以减少模型计算时间,但你的机器内存有限。你会怎么做?(你可以自由做各种实际操作假设。)
  • 9.给你一个数据集,这个数据集有缺失值,且这些缺失值分布在离中值有 1 个标准偏差的范围内。百分之多少的数据不会受到影响?为什么?
  • 10. 真阳性率和召回有什么关系?写出方程式
  • 11.在 k-means 或 kNN,我们是用欧氏距离来计算最近的邻居之间的距离。为什么不用曼哈顿距离?

1.深度学习和过往的神经网络训练方法有什么区别?列举几种深度学习的 loss function,并说明意义

深度学习与过往的神经网络训练方法相比有以下几个区别:

  1. 数据量和模型规模:深度学习通常需要大量的标注数据和更大规模的模型来获得较好的性能。相比之下,过往的神经网络训练方法往往在小规模数据和模型上进行训练。

  2. 特征提取:深度学习模型具有自动学习特征的能力,通过多层非线性变换逐渐提取高级抽象的特征表示。而过往的神经网络训练方法需要手动设计和提取特征。

  3. 训练算法:深度学习采用基于梯度的优化算法(如反向传播算法)来训练模型参数,通过最小化损失函数来优化模型。过往的神经网络训练方法可能使用基于规则的学习算法或者简单的梯度下降算法。

以下是几种常见的深度学习的损失函数(loss function)及其意义:

  1. 均方误差(Mean Squared Error,MSE):计算预测值与真实值之间的平方差的平均值。MSE在回归任务中常用,通过最小化平方差来拟合预测值和真实值之间的差异。

  2. 交叉熵损失(Cross-Entropy Loss):用于分类任务,衡量预测值与真实标签之间的差异。交叉熵损失在多类别分类问题中常用,通过最小化预测类别与真实类别之间的交叉熵来优化分类模型。

  3. 对数损失(Log Loss):也用于分类任务,特别适用于二分类问题。对数损失在二分类问题中常用,通过最小化预测概率与真实标签之间的对数损失来优化模型。

  4. KL散度(Kullback-Leibler Divergence):衡量两个概率分布之间的差异。KL散度在生成模型和无监督学习中常用,通过最小化生成模型的输出分布与真实分布之间的KL散度来优化模型。

这些损失函数在深度学习中起到关键作用,通过选择合适的损失函数,可以使模型在训练过程中朝着期望的方向进行优化,最终提高模型的性能。具体选择哪种损失函数取决于任务的特点和模型的要求。

2. 什么是卷积神经网络?请说明卷积的意义

卷积神经网络(Convolutional Neural Network,CNN)是一种深度学习模型,特别适用于处理具有网格结构(例如图像、音频)的数据。它是通过卷积操作来提取特征并学习表示输入数据的模式和关系。

卷积的意义在于它的局部感知性和参数共享的特性。下面解释一下这两个关键概念:

  1. 局部感知性(Local Receptive Field):卷积操作在每一步只处理输入数据的一个局部区域,这个区域称为感受野(receptive field)。通过在局部区域内滑动卷积核,可以对整个输入进行扫描。这种局部感知性使得CNN能够捕捉到输入数据的局部特征,例如边缘、纹理等。与全连接神经网络相比,卷积操作减少了参数的数量,提高了计算效率,并且具有平移不变性的特性。

  2. 参数共享(Parameter Sharing):在卷积神经网络中,卷积核的参数被共享在整个输入图像的不同位置上。这意味着学习到的特征在图像的不同区域上是相同的,从而减少了需要学习的参数数量。这使得CNN能够更好地处理平移不变性的问题,即对于输入图像的平移、旋转和缩放等变换,CNN能够在不同位置上共享相同的特征提取操作。

卷积操作在CNN中被广泛应用于图像处理任务,如图像分类、目标检测和图像分割等。通过在不同层次上堆叠多个卷积层和其他类型的层(如池化层和全连接层),CNN可以逐渐提取高级抽象的特征,并进行有效的模式识别。

总结来说,卷积在卷积神经网络中的意义在于它的局部感知性和参数共享特性。这使得CNN能够高效地提取输入数据的局部特征,并通过堆叠多个卷积层来学习更高级的特征表示。这种设计使得CNN在图像处理任务中表现出色,并成为计算机视觉领域的重要工具。

3. 什么是中文分词? 列举出几种你所知的分词方法

中文分词是将连续的中文文本切分成一个个独立的词语的过程。由于汉字之间没有明显的间隔符号,中文分词对于很多中文自然语言处理任务是必要的预处理步骤,包括文本分类、机器翻译、信息检索等。

以下是几种常见的中文分词方法:

  1. 基于规则的分词方法:基于规则的分词方法使用一系列预定义的规则来切分文本。这些规则可以基于词典、词频统计、词性标注等。例如,最大正向匹配(Maximum Match Method)和最大逆向匹配(Reverse Maximum Match Method)是两种常见的基于规则的分词算法。

  2. 基于统计的分词方法:基于统计的分词方法使用统计模型和机器学习算法来学习分词模型。常用的统计模型包括隐马尔可夫模型(Hidden Markov Model,HMM)、条件随机场(Conditional Random Fields,CRF)等。这些模型通过训练大规模的标注数据来学习词语的切分准则,并在测试时根据概率进行切分。

  3. 基于深度学习的分词方法:随着深度学习的兴起,基于深度学习的分词方法也得到了广泛应用。这些方法使用神经网络模型,如循环神经网络(Recurrent Neural Networks,RNN)、长短时记忆网络(Long Short-Term Memory,LSTM)和Transformer等,来学习中文的词语切分模式。通过在大规模标注数据上进行训练,这些模型可以自动地学习到中文分词的规律和模式。

  4. 基于字典的分词方法:基于字典的分词方法使用事先构建的词典来进行分词。这些方法通过在文本中匹配词典中的词语来进行切分。当遇到未登录词时,可以使用启发式算法或者规则进行处理。基于字典的方法可以比较快速地进行分词,但对于未登录词和歧义词的处理相对较弱。

这些分词方法各有优缺点,并且适用于不同的场景和任务。实际应用中,通常会根据具体需求和数据特点选择适合的分词方法或者进行方法的组合。

4. 现在深度学习在 nlp 领域有哪些应用? 请具体说明

深度学习在自然语言处理(Natural Language Processing,NLP)领域有广泛的应用。以下是一些深度学习在NLP领域的具体应用:

  1. 机器翻译:深度学习在机器翻译任务中取得了显著的突破。通过使用循环神经网络(RNN)或者Transformer等深度学习模型,可以将源语言文本自动翻译成目标语言文本。

  2. 文本分类:深度学习在文本分类任务中表现出色。通过使用卷积神经网络(CNN)、长短时记忆网络(LSTM)、Transformer等模型,可以对文本进行情感分类、主题分类等。

  3. 命名实体识别:深度学习模型在命名实体识别任务中取得了很好的效果。通过使用循环神经网络(RNN)、长短时记忆网络(LSTM)、双向LSTM等模型,可以准确地识别出文本中的人名、地名、机构名等实体。

  4. 信息抽取:深度学习在信息抽取任务中广泛应用。通过使用深度学习模型,可以从结构化和非结构化的文本中抽取出特定的信息,如关系抽取、事件抽取等。

  5. 问答系统:深度学习在问答系统中起到关键作用。通过使用基于注意力机制的Transformer模型,可以构建强大的问答系统,实现自动回答用户提出的问题。

  6. 文本生成:深度学习模型在文本生成任务中有广泛的应用,如机器翻译、自动摘要、对话系统等。通过使用生成模型,如循环神经网络(RNN)、生成对抗网络(GAN)等,可以生成具有连贯性和语义准确性的文本。

  7. 情感分析:深度学习模型在情感分析任务中表现出色。通过使用卷积神经网络(CNN)、长短时记忆网络(LSTM)等模型,可以对文本的情感进行分类,如正面情感、负面情感等。

除了上述应用之外,深度学习在NLP领域还有许多其他的应用,如文本摘要、对话系统、语言模型等。深度学习模型的强大表示学习能力和自动学习特征的能力使得它们在处理自然语言文本时具有优势,推动了NLP领域的发展。

5.传统图像处理提取的 sift 特征是什么意思?

SIFT(Scale-Invariant Feature Transform)是一种经典的图像特征提取算法,用于在图像中检测和描述关键点(keypoint)。SIFT特征具有尺度不变性和旋转不变性,对于图像的缩放、旋转、平移、亮度变化等具有较强的鲁棒性。

SIFT特征提取算法的主要步骤如下:

  1. 尺度空间极值检测(Scale Space Extrema Detection):在图像的不同尺度上,通过利用高斯差分金字塔来检测局部极值点,这些点被认为是可能的关键点。

  2. 关键点定位(Keypoint Localization):对尺度空间极值点进行精确定位,通过拟合二维高斯函数来确定关键点的位置和尺度。

  3. 方向分配(Orientation Assignment):为每个关键点分配一个主导方向,以提高特征描述的旋转不变性。通过计算关键点周围区域的梯度方向直方图,找到主导方向。

  4. 特征描述(Feature Description):在每个关键点周围的局部区域内,根据关键点的尺度和方向构建特征描述子。采用局部图像梯度的方向直方图,形成一个具有维度的向量。

SIFT特征的描述子是一个具有128维的向量,用来表达关键点周围的图像局部特征。由于SIFT特征具有尺度不变性和旋转不变性,并且对于光照变化和视角变化也具有一定的鲁棒性,因此在图像匹配、目标识别、图像拼接等应用中被广泛使用。

6. 什么叫过拟合,避免过拟合都有哪些措施?

过拟合(Overfitting)指的是在机器学习模型中,模型在训练数据上表现良好,但在未见过的测试数据上表现较差的现象。过拟合通常发生在模型过度复杂化或者训练数据过少的情况下,导致模型过度拟合训练数据的细节和噪声,而无法泛化到新的数据。

为了避免过拟合,可以采取以下几种措施:

  1. 增加训练数据:通过增加更多的训练样本,可以使模型更好地学习数据的分布,减少过拟合的可能性。

  2. 数据预处理:对数据进行预处理可以减少过拟合的风险。例如,进行特征缩放、归一化、标准化等操作,使得数据的分布更加均匀,有利于模型的泛化能力。

  3. 特征选择:选择合适的特征对于减少过拟合至关重要。可以通过特征选择算法或者领域知识来筛选出对预测任务最相关的特征,减少无关特征的干扰。

  4. 正则化(Regularization):正则化是一种常用的降低过拟合风险的方法。通过在损失函数中引入正则化项,如L1正则化(L1 regularization)或L2正则化(L2 regularization),可以惩罚模型的复杂度,防止模型过度拟合训练数据。

  5. 交叉验证(Cross-validation):使用交叉验证技术可以更好地评估模型的泛化能力。将训练数据划分为多个子集,交替使用其中一部分作为验证集,其余部分作为训练集,多次训练和验证模型,得到更准确的模型性能评估结果。

  6. 提前停止(Early Stopping):在训练过程中监控模型在验证集上的性能,当模型性能不再提升时停止训练,避免过度拟合。

  7. Dropout:Dropout是一种常用的正则化技术,通过在训练过程中随机丢弃一部分神经元,减少神经网络中神经元之间的依赖关系,防止过拟合。

  8. 模型简化:选择更简单的模型结构,限制模型的复杂度,可以降低过拟合的风险。例如,减少神经网络的层数、隐藏单元的数量等。

以上措施可以单独或结合使用,根据具体情况选择适合的方法来避免过拟合,并提高机器学习模型的泛化能力。

7.LR 和 SVM 的联系与区别是什么?

逻辑回归(Logistic Regression, LR)和支持向量机(Support Vector Machine, SVM)是常见的用于分类任务的机器学习算法。它们有一些联系和区别:

联系:

  1. 类型:LR和SVM都是监督学习算法,用于二分类和多分类任务。
  2. 线性分类器:在默认情况下,LR和线性核SVM都是线性分类器,用于在特征空间中找到一个超平面来分割不同类别的样本。

区别:

  1. 模型形式:LR是一种概率模型,通过使用逻辑函数(如sigmoid函数)将线性模型的输出映射到[0, 1]之间,表示概率。而SVM是一种几何间隔最大化的模型,通过寻找一个最优的超平面来最大化不同类别之间的间隔。
  2. 损失函数:LR使用的是对数损失函数(log loss),通过最大化似然函数来优化模型参数。SVM使用的是合页损失函数(hinge loss),通过最小化误分类样本到超平面的距离来优化模型参数。
  3. 边界:LR的决策边界是一个概率阈值,可以根据设定的阈值进行分类。SVM的决策边界是由支持向量组成的超平面,可以直接进行分类。
  4. 多类分类:LR可以直接用于多类分类,通过一对多(One-vs-Rest)或一对一(One-vs-One)策略来进行多类分类。SVM本身是一个二分类算法,但可以通过一对多策略进行多类分类。
  5. 鲁棒性:由于SVM的优化目标是最大化间隔,它对于噪声和异常点比较鲁棒。相比之下,LR对于噪声和异常点比较敏感。
  6. 可解释性:LR模型具有较好的可解释性,可以通过权重参数来理解不同特征对于分类的贡献。SVM模型的解释性相对较差。

选择使用LR还是SVM取决于具体的问题和数据集特征。一般来说,当特征维度较高、数据集较大时,LR可能更适合。当特征维度较低、数据集较小、样本分布复杂时,SVM可能更适合。此外,还可以考虑交叉验证和性能指标等因素来选择适合的算法。

8. 给你一个有 1000 列和 1 百万行的训练数据集,这个数据集是基于分类问题的。经理要求你来降低该数据集的维度以减少模型计算时间,但你的机器内存有限。你会怎么做?(你可以自由做各种实际操作假设。)

面对这种情况,当内存有限且需要降低数据集维度以减少模型计算时间时,可以考虑以下策略:

  1. 特征选择(Feature Selection):使用特征选择方法,选择对分类任务最相关的特征子集。可以考虑使用基于统计量(如方差、互信息等)或模型训练过程中的特征重要性进行特征选择。通过保留最相关的特征,可以降低数据集的维度。

  2. 主成分分析(Principal Component Analysis, PCA):使用PCA对数据进行降维。PCA可以将原始的高维特征转换为一组线性无关的低维特征,保留原始数据中的主要信息。通过选择保留的主成分数量,可以控制数据的维度。

  3. 随机采样(Random Sampling):如果内存无法容纳整个数据集,可以考虑通过随机采样的方式来降低数据集的规模。随机选择一部分样本进行训练,使得数据集的规模减小,从而降低计算时间。但需要注意,这可能会引入采样偏差,因此在采样时需要保持类别的平衡。

  4. 小批量训练(Mini-batch Training):将数据集分成小批量进行训练,而不是一次性将整个数据集加载到内存中。通过迭代地加载和训练小批量数据,可以减少内存的使用量,并且可以提高模型的训练效率。

  5. 分布式计算(Distributed Computing):如果机器内存仍然有限,可以考虑使用分布式计算框架,如Spark、Hadoop等,将数据集分成多个部分进行处理。通过并行计算和分布式存储,可以降低单台机器的内存压力,并减少计算时间。

  6. 特征哈希(Feature Hashing):特征哈希是一种将原始特征映射到固定维度的技术。通过哈希函数将特征映射为固定长度的特征向量,可以降低数据维度。但需要注意,特征哈希可能会引入冲突,导致不同特征映射到相同的哈希桶中,因此需要在实际应用中进行评估。

应根据具体情况和需求选择适合的策略。在选择降维方法时,需要权衡降维后数据的信息损失和模型性能之间的平衡,并进行实验和评估以确定最佳的降维策略。

9.给你一个数据集,这个数据集有缺失值,且这些缺失值分布在离中值有 1 个标准偏差的范围内。百分之多少的数据不会受到影响?为什么?

如果数据集中的缺失值分布在离中值有一个标准偏差的范围内,那么根据正态分布的性质,约68%的数据会在中值加减一个标准偏差的范围内。

具体来说,对于一个符合正态分布的特征,如果缺失值的分布在离中值有一个标准偏差的范围内,那么大约68%的数据在这个范围内,而剩下的32%的数据会在中值加减一个标准偏差之外。

因此,百分之约68的数据不会受到缺失值的影响,因为它们的取值仍然在正常的范围内。而剩下的约32%的数据会受到缺失值的影响,因为它们的取值可能会因为缺失值的存在而发生变化。

需要注意的是,这个百分比是基于数据符合正态分布的假设。如果数据不符合正态分布,那么这个百分比可能会有所不同。此外,缺失值的分布情况也会对结果产生影响,以上仅提供了一个基于离中值一个标准偏差范围的概括性估计。具体情况还需要根据数据集的实际情况进行分析和评估。

10. 真阳性率和召回有什么关系?写出方程式

真阳性率(True Positive Rate,也称为灵敏度、召回率或查全率)是指在所有实际正例中,被正确地预测为正例的比例。召回率衡量了模型对于正例的查全能力。

召回率的方程式如下所示:
召回率 = 真阳性 / (真阳性 + 假阴性)

其中,真阳性是指模型正确预测为正例的样本数量,假阴性是指实际为正例但被错误预测为负例的样本数量。

召回率的计算可以帮助我们评估模型在检测或识别正例方面的性能。较高的召回率意味着模型能够更好地捕捉到真实的正例,但可能会导致较高的误报率(假阳性)。

需要注意的是,召回率和准确率(Precision)是两个相关但不同的性能指标。准确率衡量了模型预测为正例的样本中有多少是真正的正例,而召回率衡量了模型对于正例的查全能力。在某些情况下,召回率和准确率之间存在一个权衡关系,需要根据具体问题的要求来确定最合适的性能指标。

11.在 k-means 或 kNN,我们是用欧氏距离来计算最近的邻居之间的距离。为什么不用曼哈顿距离?

在 k-means 或 kNN 算法中,通常使用欧氏距离而不是曼哈顿距离的原因有以下几点:

  1. 几何解释:欧氏距离是基于欧几里得空间的距离度量,衡量的是两个点之间的直线距离。而曼哈顿距离是基于曼哈顿几何的距离度量,衡量的是两个点之间的城市街区距离。在欧氏空间中,点的连线是直线,更符合我们对距离的直观理解。因此,在大多数情况下,使用欧氏距离更为自然和直观。

  2. 数学性质:欧氏距离具有更好的数学性质,例如满足三角不等式,而曼哈顿距离不满足三角不等式。这意味着使用欧氏距离可以更好地保持距离的一致性和传递性,有助于聚类算法或最近邻算法的准确性和稳定性。

  3. 特征权重:欧氏距离可以自然地处理不同特征之间的权重。在欧氏距离中,每个特征的差异都被平方和开方处理,因此可以根据特征的方差来调整权重。而曼哈顿距离在处理特征权重时较为困难,需要额外的处理步骤。

尽管曼哈顿距离在某些情况下也可以用于特定的问题和数据集,但在一般情况下,欧氏距离更为常用和广泛适用。然而,对于特定的应用场景,选择合适的距离度量是一项需要根据问题和数据特征进行权衡和选择的任务。
都看到这啦,点个赞再走吧!🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/702537.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Panalog大数据日志审计系统libres_syn_delete.php命令执行漏洞

声明 本文仅用于技术交流,请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。 1、产品简介 Panalog大数据日志审计系统定位于将大数据产品应用于高校…

【.xml文件匹配不到】⭐️解决使用mybatis-plus找不到对应的xml文件导致的持久层方法报错

前言 小伙伴们大家好,很快嗷,到了年后的第一周,最近在自己电脑上敲项目时遇到一个平时可能不怎么遇到的问题,就是mybatis持久层框架使用时找不到对应的xml配置文件,也就导致自己写的持久层方法报错 接口报错内容&…

win11修改网络算法为BBR2_提升网络环境质量

Win11 BBR2 是Google开发的一种高效的网络拥塞控制算法,玩 Linux 的朋友应该对它还有锐速不陌生。相比Windows默认使用的 CUBIC 算法,BBR2 在网络吞吐量、延迟、全局性能等方面都有一定优势。 如果你日常网络经常丢包或者高延迟可以尝试切换为BBR2算法。…

实施工程师前后端项目部署流程一次完成

目录 一、jdk安装具体步骤 二、tomcat安装具体步骤 三、MySql具体步骤 修改密码 登录 四、nginx安装 4.1、Nginx 4.2、操作步骤 安装ssl证书(https) 开80端口 测试 设置自启动 五、后端部署tomcat负载均衡 5.1、为什么要使用 5.2、搭建ngin…

抖音视频提取软件怎么用|抖音数据抓取工具

针对用户获取抖音视频的需求,我们开发了一款功能强大的抖音视频提取软件,旨在帮助用户轻松获取他们感兴趣的视频内容。无需逐个复制链接,无需繁琐的下载步骤,我们的软件让抖音视频获取变得简单快捷。 使用我们的软件非常简单&…

Open3D 基于最小生成树的法线定向 (27)

Open3D 基于最小生成树的法线定向 (27) 一、算法介绍二、算法实现一、算法介绍 法线计算的方向通常都存在方向问题,用Open3D估计的点云法线,是在每个点的局部进行拟合,估计的法线方向并不一致,Open3D提供了使用最小生成树调整法线到统一方向的方法,下面是具体的实现代码…

从Unity到Three.js(outline 模型描边功能)

指定模型高亮功能,附带设置背景颜色,获取随机数方法。 百度查看说是gltf格式的模型可以携带PBR材质信息,如果可以这样,那就完全可以在blender中配置好材质导出了,也就不需要像在unity中调整参数了。 import * as THRE…

从零实现一套低代码(保姆级教程)【后端服务】 --- 【22】实现数据库管理的前端页面

摘要 在上一篇中,我们实现了三个接口: 新增实体的接口删除实体的接口获取实体列表的接口 其实复杂的地方在于,我们创建一个实体,是在数据库中创建了一张表。而这张表中的数据,是要根据低代码平台中的操作进行更改。…

基于pytorch使用LSTM实现文本匹配任务

本文学习纪录 PyTorch深度学习项目实战100例 使用LSTM来实现文本匹配任务 使用LSTM(Long Short-Term Memory)网络来实现文本匹配任务是自然语言处理(NLP)中的一个常见应用。文本匹配任务的目标是确定两个文本段落是否在某种程度…

Vue + Echarts页面内存占用高问题解决

Vue Echarts页面内存占用高问题解决 1.问题描述 目前使用的是Vue2 Echarts4.x的组合,页面如下所示。 就是一个类似于神策的数据看板页面,左侧是一个导航栏,右侧看板页面中包含很多个报表图片,其中报表页面中对Echarts图表进…

STL常用容器(string容器)---C++

STL常用容器目录 1.string容器1.1 string基本概念1.2 string构造函数1.3 string赋值操作1.4 string字符串拼接1.5 string查找和替换1.6 string字符串比较1.7 string字符存取1.8 string插入和删除1.9 string子串 1.string容器 1.1 string基本概念 本质: string是C…

电子签证小程序系统源码后台功能列表

基于ThinkPhp8.0uniapp 开发的电子签证小程序管理系统。能够真正帮助企业基于微信公众号H5、小程序、wap、pc、APP等,实现会员管理、数据分析,精准营销的电子商务管理系统。可满足企业新零售、批发、分销、预约、O2O、多店等各种业务需求,快速积累客户、…

搜索专项---IDA*

文章目录 排书回转游戏 一、排书OJ链接 本题思路:先考虑每一步的决策数量:当抽取长度为 i 的一段时,有 n−i1 种抽法,对于每种抽法,有 n−i 种放法。另外,将某一段向前移动,等价于将跳过的那段向后移动&am…

C++之std::tuple(二) : 揭秘底层实现原理

相关系列文章 C之std::tuple(二) : 揭秘底层实现原理 C三剑客之std::any(一) : 使用 C之std::tuple(一) : 使用精讲(全) C三剑客之std::variant(一) : 使用 C三剑客之std::variant(二):深入剖析 深入理解可变参数(va_list、std::initializer_list和可变参数模版) st…

【JVM】线上一次fullGC排查思路

fullGC问题背景 监控告警发现,今天开始我们线上应用频繁出现fullGC,并且每次出现后磁盘都会被占满 查看监控 查看监控发现FULLGC的机器均为同一个机房的集器,并且该机房有线上error报错,数据库监控对应的时间点也有异常&#x…

数据结构知识点总结-绪论 数据结构基本术语 算法及评价

要求 (1)对数据结构这么课学了哪些知识有个清楚的认知; (2)掌握目录结构,能复述出来每个知识点下都有哪些内容。 如下图所示,可自行制作思维导图,针对自己薄弱的地方进行复习。 …

curl与HTTP状态码

目录 一、curl (一)curl简介 (二)curl命令的选项 二、HTTP状态码 (一)状态码的含义 (二)状态码分类 1.默认的状态码 2.自定义状态码 一、curl (一)c…

NGINX服务器配置实现加密的WebSocket连接WSS协议

一、背景 最近在做小程序开发,需要在nginx中配置websocket加密模式,即wss。初次配置wss时,踩了两个小时的坑,本文将踩坑过程分享给大家,有需要用到的伙伴可以直接copy即可实现,节省宝贵时间。 二、WebSo…

代码随想录第41天|● 01背包问题,你该了解这些! ● 01背包问题,你该了解这些! 滚动数组 ● 416. 分割等和子集

文章目录 背包问题背包题目解法一 ● 01背包问题-二维数组五部曲1.确定dp数组2、确定递推公式3、初始化dp数组4、循环代码: 解法二-01背包问题-滚动数组五部曲1:定义dp二、递推公式三、初始化四、循环顺序代码: 698. 划分为k个相等的子集题解…

FairyGUI × Cocos Creator 3.x 使用方式

前言 上一篇文章 FariyGUI Cocos Creator 入门 简单介绍了FairyGUI,并且按照官方demo成功在Cocos Creator2.4.0上运行起来了。 当我今天使用Creator 3.x 再引入2.x的Lib时,发现出现了报错。 这篇文章将介绍如何在Creator 3.x上使用fgui。 引入 首先&…