4 大仙儿智

尚未进行身份认证

我要认证

热爱代码,心怀梦想 https://me.csdn.net/lmj_like_c 之前的博客密码忘记了,欢迎大家参观

等级
TA的排名 12w+

c++中的深拷贝和浅拷贝

区别与联系:1.二者都是为了实现复制的功能;2.在不涉及指针,空间分配等资源问题时,深浅拷贝无区别;3.深拷贝重新申请了空间,改变被拷贝对象时拷贝对象不会变化;为什么需要深拷贝:- 因为浅拷贝可能会造成内存泄露拷贝发生于用被拷贝对象实例化新对象,过程中被拷贝对象的属性值会一一赋值给新对象。那么当我们的类中存在指针或者动态的内存分配时,使用普通拷贝(浅拷贝,默认拷贝)只会将那块内存的位置告知当前对象,并不会重新为新对象分配内存。当程序运行结束后,两个对象分别析构,此时这同一块内存将被释放两次。释放

2020-08-11 11:21:09

硬编码与软编码

硬编码:编写代码的过程中直接指定常量,后续修改需要修改代码;非CPU编码,常用GPU,DSP,FPGA, ASIC等;优点:快;软编码:编写过程中使用变量没,后续修改只需要在变量出修改即可,不需要到使用变量的位置修改;CPU编码;优点:易于维护;代码示例:int a = 2, b = 2;int c;c = 2 + a; //硬编码,2的值无法改变,后续修改需要在2处修改;c = b + a; // 非硬编码,b的值在运行时确定,变量值可变,修改只需在b的初始化位置修改即可;co

2020-08-06 19:29:50

【剑指offer】面试题3:数组中重复的数字

问题描述:** 解题流程:**1.与面试官沟通时间和空间要求;2.构思测试用例:数组长度为1,0时的特殊处理;多个重复时如何处理;无效的测例(出现了0-n-1之外的数据);3.在脑子里面过一遍可能的解法:哈希表(时空都是O(n)),排序后检查(时间O(nlogn)+空间O(1));4.考虑题目的约束:只有0-n-1的数据;完整代码:...

2020-08-05 18:03:53

【基础算法】4.快速幂算法

快速幂算法:leetcode题解原文链接递归代码:迭代代码:

2020-06-24 11:18:14

【leetcode】319.灯泡开关

题目描述:解题思路:1.暴力模拟法:通过设置一个01字符串来模拟灯泡的开关,双重循环模拟过程中的开关操作,最后为计算字符串中1的个数为答案。(这个方法会超时)2.数学法:引用井水的题解思路在模拟的过程中我们发现:第1个灯泡会在第:1 轮被操作;第5个灯泡会在第:1,5 轮被操作;第9个灯泡会在第:1,3,9 轮被操作;第20个灯泡会在第:1,2,4,5,10,20轮被操作;…可总结为:第I个灯泡会在 自己的因数 时被操作,如果因数的个数是奇数则最后状态为开;题目可转化为求解有奇数个因

2020-06-04 11:54:30

【let code】647.回文子串

问题描述:问题分析:1.回文子串分为奇数位(中心有一个对称点)和偶数位(中间无对称点);2.以中心点为起始点,向两边逐步扩散,寻求回文的最大长度(过程中相对较小的回文子串顺便计数);3.遍历数组,以每一个点当作中心点遍历计算。完整代码:class Solution { public: int getres(string s, int start, int end) ...

2020-01-15 09:27:03

【let code】967.连续差相同的数字

问题描述:问题分析:1.可分三种情况进行讨论:N=1时,不论K为多少,结果都是0,1,2,3,4,5,6,7,8,9;K=0时,不论N为多少, 结果都是(111…)222…)(333…)…(999…);一般情况;2.相差为K的数字, 表明每一位有两种选择:前一位加K和前一位减K;(加减后判别是否在数字范围内);3.由于N>1,表明会出现多位,每一位的选择都会带来最终结果的变化,...

2020-01-07 10:47:09

【机器学习百问】14.过拟合?欠拟合?如何处理?

问题难度(5分制):1;过拟合定义:训练集上的效果好于测试集。一般可能是训练数据过少或网络过于复杂,导致网络在训练集上的拟合结果非常好,但由于其数据少或算法简单,无法扩展到新的数据中,这种现象为过拟合。欠拟合定义:欠拟合就是不管在哪里结果都不好。算法过于简单或数据过于多都有可能引起,导致算法无法有效捕捉到完整的数据特征。在训练集和测试集上都表现的很差劲。...

2019-12-09 11:09:58

【leet code】453.最少移动次数使数组元素相等

问题描述:问题分析:反向考虑:n-1个数+1就等于1个数-1;问题即可转化为:将数组中所有元素(每次减1)减到与最小值相等需要几步?[1,2,3]->[1,2,1]->[1,1,1]解法即可描述为:数组中其他元素与最小值的差值和。(下式中最小值*数组长度为成功后的数组和);res = sum(数组)-最小值(数组长度);完整代码: int minMoves(v...

2019-11-28 15:43:44

【读书笔记】多层感知器反向传播过程

阅读书籍:神经网络原理(Simon Haykin著, 叶世伟,史忠植 译)图文公式来源于书籍反向传播信号流图:途中上侧为前向传播过程,下侧为反向传播过程:反向传播过程需要五个步骤:1,初始化:以一个随机分布随机的挑选出一组权值和阈值。这里随机分布应为(均值为0的均匀分布, 方差应使神经远的局部诱导域的标准差位于sigmoid函数的包和过度处)。2,训练样本的呈现:先训练一个回合(一...

2019-11-26 11:12:05

【基础算法】3.辗转相除法

辗转相除法(数学中专业术语称为欧几里得算法):叫辗转相除是因为,计算的过程中,除数与被除数在更新后总要交换来回除,所以叫辗转;欧几里得算法典型代表题目:最大公因数,字符串最大公因数完整代码:int gcd(int a, int b){ return b==0?a:gcd(b, a%b);}...

2019-11-25 16:52:58

【机器学习百问】13.超参数如何调优

问题难度(五分制):3超参数定义:在网络计算中不会变化,但对计算结果有影响的参数;比如:学习率(搜索步长),目标值(期望值),搜索范围等;调优方法:1.网格搜索法(暴力求解)在给定范围内,遍历每一个可能的取值(步长的可能取值,范围的可能取值等),寻求最优点;(由于每一个都要试一试,所以耗时巨大);改进版的网格搜索是现在一个较大范围内确定可能的位置(步长稍微大一点先到达可能点),再在可...

2019-11-25 11:47:26

【let code】754.到达终点的最短路长

问题描述:问题分析:1.有题目第n步步长为n可联想等差数列求和;2.由于在水平面上左右走,故左右会发生对称现象如下(且同一步数可到达位置之间存在差值为2的关系):第一步可到达:1,-1第二步可到达:3,1,-1第三步可到达:6, 4, 2, 0, -2, -4, -6 第四步可到达:10, 8, 6, 4, 2, 0 …第五步可到达:15, 13, 11, 9, 7, 5, 3,...

2019-11-21 11:50:13

【机器学习百问】12.自助验证中,当n趋于无穷大时,验证集最大能到多少?

问题难度(5分制):3自助验证定义:基于自助采样法。对于总数为n的样本集合,进行n次有放回(有重复)的随机抽样,n次抽样结束后,未被选中的样本组成一个集合作为验证集;自助验证优点:在小样本训练时,避免样本划分使得训练集和验证集过小;当n趋于无穷时,验证集多大: 样本总量的36.8%有放回抽样中,一个样本在一次抽样中未被选中的概率是:(1-1/n)n次抽样均为抽中的概率是(1-1/n)...

2019-11-19 17:29:32

【百问机器学习】11.模型评估都有哪些验证方法,各自优缺点都是什么?

问题难度(5分制):2模型评估方法:1.Holdout检验:将原始集合按照7:3比例随机划分训练集和验证集;7份用来训练模型,3份用来检验模型;存在问题:验证集的验证结果依赖于原始分组。2.交叉检验(留一验证):为消除Holdout检验中的验证结果依赖原始分组问题而提出;将原始数据分为K(通常K=10)个大小相同的组,遍历十个组,每一以当前一组作为验证集,剩下九组作为训练集。流...

2019-11-18 10:57:11

【基础算法】2.回溯算法

回溯算法简介:回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。代表问题:N皇后问题,全排列问题,解数独问题等;回溯体模板:void backtracking(当前标记, 【其他条件1, 其他条件2】)...

2019-11-15 17:16:28

【机器学习百问】10.A/B测试中如何划分实验组和对照组

难度系数(5分制): 2实验组: 施以新模型的训练集合;对照组: 施以旧模型的训练集合;划分原则:分离目标群体,然后将目标群体对半分开,一半做实验组,一半做对照组;用一个例子演示划分:问题需求:利用A/B测试验证在特定群体(青年人)中新的推荐模型A的效果;划分样例:标记所有青年人,按照所有青年人ID对半划分对比效果;错误划分:全部用户对半划分(没有区分目标群体);划分目标用户中...

2019-11-15 11:32:57

【let code】442/448 :检测重复字符、检测缺失字符【鸽巢原理】

leetcode 442/448.检测重复字符、检测缺失字符问题描述:问题分析:鸽巢原理(组合数学知识):n个巢, n+1只鸽子,每个鸽子进一个巢,那种总会剩下一个鸽子无家可归;在此问题中我们假设数字的下标为鸽巢,下标对应的值为鸽子编号。经过一次遍历让鸽子(回到鸽子编号-1的巢里)回家,最终发现无家可归的鸽子,和没有鸽子的巢。更详细的讲解请查看:鸽巢思想解决完整代码: for...

2019-11-14 16:34:41

【基础算法】1.二分查找

二分查找介绍:在一个有序数组中寻找目标元素,每次排除一半数据后更新左右查找边界;比如在1,2,3,4,5,6,7,8,9,10中查找8,步骤如下:1.左边界1,右边界10: 算中心结点(1+10)/2 = 5,比较5与8, 相等输出,不相等继续:2.因为5小于8, 所以将左边界1更新为中心结点+1(5+1 = 6),右边界不变:算中心结点(6+10/2=8,比较8与8,相等输出,不相等继续...

2019-11-14 15:39:05

【let code】661.图片平滑器

问题描述:问题分析:1.如果没有越界,则计数,并加入总数;2.不能在原数组进行修改;(如果在原图进行修改,当前平滑的值会影响到后面的平滑结果);完整代码:bool inrunge(int r, int c, int R, int C) { if (r < 0 || c < 0 || r >= R || c >= C) ...

2019-11-14 15:26:29

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。