8 kuaizi_sophia

尚未进行身份认证

暂无相关简介

等级
TA的排名 24w+

基数排序C++实现及改进思考

步骤将各待比较元素数值统一数位长度,即对数位短者在前补零;根据个位数值大小,对数组进行排序;重复上一步骤,依次根据更高位数值进行排序,直至到达最高位;特性稳定算法;适用于正整数数据(若包含负数,那么需要额外分开处理);对于实数,需指定精度,才可使用此算法。代码// 基数排序 (只适用于正数,此处不适用)void radixSort(vector<in...

2019-03-12 23:33:58

LeetCode——160. 相交链表

编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表**:**在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (...

2019-03-12 23:30:41

LeetCode——241. 为运算表达式设计优先级(递归)

给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果。你需要给出所有可能的组合的结果。有效的运算符号包含 +, - 以及 * 。示例 1:输入: "2-1-1"输出: [0, 2]解释: ((2-1)-1) = 0 (2-(1-1)) = 2示例 2:输入: "2*3-4*5"输出: [-34, -14, -10, -10, 10]解释: (...

2019-03-12 23:26:57

LeetCode——455分发饼干(贪心算法)

假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。注意:你可以假设胃口值为正。一个小...

2019-03-12 23:22:03

LeetCode——75颜色分类(荷兰国旗问题)

给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]void sortColors(vector<int>& nums) { // 荷兰国旗问题 ...

2019-03-12 23:20:13

LeetCode——前K个高频元素(桶排序)

桶排序方法vector<int> topKFrequent(vector<int>& nums, int k) { // 用哈希map记录每个数字出现的次数 unordered_map<int, int> hashmap; vector<int> result; int maxCount = 0; f...

2019-03-12 23:18:16

LeetCode——数组中的第K个最大元素(快速排序和堆排序实现)

快速排序实现// 分区int partition(vector<int>& array, int left, int right){ // 选择最右的元素作为基准值 int povit = array[right]; int i = left, j = right - 1; while (i <= j){ if (arr...

2019-03-12 23:17:08

LeetCode——求二叉树最小深度

递归实现int minDepth(TreeNode* root) { // 递归实现 if (!root){ return 0; } else if (!root->left && !root->right){ return 1; } else if (!root->left){ ...

2019-03-12 23:13:58

十大经典排序算法及C++实现

十大经典排序算法1、冒泡排序步骤从头开始,每次比较两元素,若大者在前,则交换两元素,直至数组末尾,此时最大元素为数组最后的元素;重复以上步骤,从头开始至上一轮比较的末尾元素;性质稳定算法;代码// 冒泡排序void bubbleSort(vector<int>& array) { for (size_t i = 0; i < array...

2019-02-26 22:42:36

降低模型“过拟合”、“欠拟合”风险的方法

过拟合:指模型对于训练数据拟合呈过当的情况,反映到评估指标上,是模型在训练集上表现很好,但在测试集和新数据上表现较差,在模型训练过程中,表现为训练误差持续下降,同时测试误差出现持续增长的情况。欠拟合:指模型对于训练数据拟合不足的情况,表现为模型在训练集和测试集表现都不好。如上图所示,从左至右,依次为欠拟合、正常模型、过拟合情况,欠拟合情况中,拟合蓝线没有很好地捕捉到数据的特征,不能很好地拟合...

2018-12-26 11:30:16

分类和回归模型常用的性能评价指标

在预测任务中,给定样例集D={(x1,y1),(x2,y2),…,(xm,ym)}D=\lbrace(x_1,y_1),(x_2,y_2),\ldots,(x_m,y_m)\rbraceD={(x1​,y1​),(x2​,y2​),…,(xm​,ym​)},其中yiy_iyi​是示例xix_ixi​的真实标记,mmm表示样例数量,m+m^+m+、m−m^-m−分别表示正例和反例的数量。回归任务...

2018-12-10 16:37:41

分类任务中数据类别不平衡问题的几种解决方案

类别不平衡(class-imbalance),是指分类任务中不同类别的训练样例数目差别很大的情况(例如,训练集正类样例10个,反类样例90个),本文假设正类样例较少,反类样例较多。现有解决方案大体分为三类,如下文所示。欠采样(undersampling)欠采样方法,即去除一些反类样例,使得正、反类样例数量接近。EasyEnsemble为欠采样的代表性算法,利用继承学习机制,将反例划分为若干...

2018-12-08 16:49:00

多分类问题学习器拆分策略

多分类问题学习器拆分策略对于NNN个类别C1,C2,…,CNC_1,C_2,\ldots,C_NC1​,C2​,…,CN​,多分类学习的基本思路是拆解法,即将多分类任务拆分成若干个二分类任务求解,拆分策略如下所示:一对一(One vs. One, OvO)将NNN个类别两两配对,产生N(N−1)/2N(N-1)/2N(N−1)/2个二分类任务,每个任务使用一个二分类学习器进行学习;多个二分...

2018-12-07 20:55:07

数据集的训练集和测试集划分

数据集的训练集和测试集划分留出法(hold-out)留出法,直接将数据集DDD划分为两个互斥的集合,其中一个集合作为训练集SSS,另一个作为测试集TTT,一般做法是将2/3~4/5的样本作为训练集,其余部分作为测试集;在使用留出法时,一般采用多次随即划分、重复进行实验评估后,取平均值作为留出法的评估结果。交叉验证法(cross validation)交叉验证法,或kkk折交叉验证法(k-...

2018-12-07 18:05:21

Neural Baby Talk学习笔记

Neural Baby Talk学习笔记[1803.09845] Neural Baby Talk1、介绍深度学习时代采用LSTM模型,过分依赖language model,导致caption经常与图像内容关联不够。深度学习之前更依赖图像内容,而对language model关注不多,例如采用一系列视觉检测器检测图像内容,然后基于模板或者其他方式生成caption作者观点...

2018-11-16 14:03:48

BLEU机器翻译评价指标学习笔记

BLEU机器翻译评价指标学习笔记BLEU(bilingual evaluation understudy),双语互译质量评估辅助工具,主要用来评估机器翻译质量的工具。评判思想:机器翻译结果越接近专业人工翻译的结果,则越好。实际工作:判断两个句子的相似程度。计算公式:BLEU−N=BP⋅exp(∑n=1Nwnlogpn)BLEU-N=BP \cdot exp\Big(\sum_{n=1}...

2018-11-09 17:09:15
勋章 我的勋章
  • 新人勋章
    新人勋章
    用户发布第一条Blink获赞超过3个即可获得