自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 2021-11-1 力扣第611题 有效三角形的个数

有效三角形的个数题目解析由题意可知,我们要寻找一个数组中,可以组成三角形的三条边的三元组的个数。那么我们可以利用三角形两边之和大于第三边的性质来进行搜索查找。即 a+b>c 且 a+c>b 且 b+c>a,简化一下就是,只要最小的两条边之和大于第三边即可。(即,设a≤b<c,则满足 a+b>c即可)代码实现那么,我们需要先对数组进行一个排序,之后用三层循环依次从左至右找满足条件的三条边。i表示最小的第一条边的元素位置,j表示最小的第二条边的元素位置,k表示第三条边。

2021-11-01 17:20:43 253

原创 2021-10-29 力扣题第680 验证回文字符串II

验证回文字符串II题目解析根据题目可知,有两种情况可以算作true,一是整个字符串本身就是回文串,二是,在仅删除一个字符的情况下成为回文串。代码实现根据题目,我们可以先对正常情况进行考虑,由两端开始向中间进行比较,若都相等则是回文串,返回true(该过程可封装成一个函数,后续方便使用)。若碰到不等的情况,再考虑未比较的字符串在删除左端一个字符(使左指针+1)或者删除右端一个字符(使右指针-1)后,剩下的部分是否为回文串,若是则返回true,不是则返回false。在判断class Solutio

2021-10-29 20:01:05 174

原创 2021-10-11力扣题第557 反转字符串中的单词III

反转字符串中的单词III题目解析题目要求单独反转每个单词,而单词是由一个空格分隔开的。所以我们只需要用两个指针,分别表示单词的起始位置以及单词的结束位置(空格位置或字符串结束位置)。代码实现i用于记录一个单词的开始位置,j用于记录一个单词的结束位置(空格或数组长度后一个的位置)。所以先循环搜索j,判断是否为空格,若是,则找到了一个单词。则用reverse函数,对单词进行逆序。之后找下一个单词,因为题目说单词之间只使用1个空格进行分割,没有多余空格,所以更新i的位置为j+1(空格之后的位置)。j则继

2021-10-11 16:51:38 167

原创 2021-10-11 力扣题第283 移动零

移动零题目解析根据题目要求,我们需要将数组中的0全部移动到数组的末尾,同时又要保证非零元素原有的顺序,并且直接在数组上进行交换的操作。那么,最简单的想法就是,每搜索到一个0,就提出来放到数组最后,其他元素整体前移一位。但因为不让使用额外数组存储,依次移动的话需要额外花费的操作和时间太多了。所以我们使用双指针的方式来实现。代码实现设定i和j两个指针,i用于搜索非零元素,j用于搜索0元素。两个指针分别用两个for循环从左向右搜索,当搜索到“当前未处理的第一个”非0元素、0元素,跳出循环,此时所记录的

2021-10-11 15:20:02 190

原创 2021-9-27 力扣第392题 判断子序列

判断子序列题目解析题目要求判断s是否为t的子序列,即s中的字符依次存在于t中即可。所以使用双指针的方式,从左至you依次进行比较。代码实现当s[i] == t[j],说明满足条件,继续向后判断,双指针分别后移。若不等,则可能是还没有找到t中相同的,所以j指针后移。若j超出t的长度,说明找遍t也没有找到相同的,则说明s不是t的子序列,提前返回false。若遍历完整个s数组,说明s数组中元素均已在t中依次找到相等的,说明是t的子序列,返回true。class Solution {public:

2021-09-27 21:27:44 121

原创 2021-9-27 力扣第344题 反转字符串

反转字符串题目解析按照题目要求,我们要将字符串反过来输出,并且不能使用多于O(1)的额外空间来存储。所以这意味着我们要直接将原数组上的头尾交换进行交换,并只能使用一个字符型的临时变量来存储。代码实现只需遍历一半的数组,因为在遍历前一半之后,已经和后一半进行完交换了,若遍历整个数组就又调换回原来了。s[i]是从头至尾第i个元素,s[s.size()-1-i]则表示与之对应需要调换的倒数第i个元素。这里我们使用t来存储s[i],之后将s[s.size()-1-i]赋值给s[i],将t赋值给s[s.si

2021-09-27 21:01:43 213

原创 2021-09-24 力扣第349题 两个数组的交集

两个数组的交集题目解析题目要求求给定两个数组的交集,输出结果中元素都是唯一的。由于题目没有给定其他条件限制,所以我们需要考虑到数组长度很大的情况,在解题时可以使用long long类型来定义指针。实现思路一:枚举通过两层for循环,对所有元素进行比较,相同的放入结果数组中。同时,需要与结果数组中已有元素进行对比,若已经存在该元素,则不重复放入。class Solution { using ll = long long;public: bool isexisted(vector&

2021-09-26 21:58:43 116

原创 2021-9-20 力扣第162题 寻找峰值

寻找峰值题目解析题目要求,寻找任意一个数组中的峰值。注意:这里不是最大或者最小值,而是峰值,即,若该值左右的元素均比该值小,说明该值为峰值。而且并没有要求求出所有峰值,只要求出任意一个即可。所以我们只需要找“某一范围内最大值”即可,这里我们可以使用二分法来快速缩小对“某一范围”的搜索。又因为题目说明不存在相邻两个元素相等的情况,则一定存在峰值。所以左右指针相撞时,所在的位置一定是峰值。代码实现设左右俩指针,以及mid指针。mid指针根据左右指针位置变动而更新。每次循环判断下标为mid的元素与

2021-09-23 22:03:18 223

原创 2021-9-19 力扣88题 合并两个有序数组

合并两个有序数组题目解析题目要求对两个以按非递减排序的数组进行合并,合并成一个非递减排序数组。所以我们可以用双指针,分别指向两个数组最左端,依次比较,小的(或相等的)存入新建的一个结果数组,比较过元素后指针则后移。最后按照题目要求将结果数组存入nums1数组即可。代码实现初始化双指针i,j为0。当i<m且j<n时,即nums1与nums2数组均没有将所有元素都比较完时,两数组还有元素可以进行比较(如第一个循环所示),将比较小的先存入ret数组,对应的指针后移。当i或j有一个大于对应数

2021-09-22 19:54:57 102

原创 2021-09-18 力扣125-验证回文串

目录验证回文串题目解析代码实现验证回文串题目解析题目给定一个字符串,让我们判断字符串是否为回文串,可忽略标点符号、空格、大小写区别。ps:回文串特点类似于“对称”,例:“abcdedcba”。所以,左右分别设一个指针。若左右对应的有效字符(字母或数字)相等,则两边的指针同步向里移动。一旦遇到不等情况,则说明不符合“回文串”的特点,返回false。代码实现在进行左右指针所指字符的比较相等之前,应先考虑需要忽略的问题。字母大小写问题:需要对大小写字母进行统一(这里采用统一成小写字母),以便于

2021-09-18 21:58:52 147

原创 伯禹学习平台·深度学习笔记(二)

五、语言模型语言模型给定目标,判断序列是否合理。关注的是一个序列的概率。

2020-02-18 22:32:36 273

原创 伯禹学习平台·深度学习笔记(一)

线性回归数据集训练数据集:真实数据样本:一栋房屋标签:真实售出价格特征:用来预测标签的两个因素——用来表征样本的特点优化函数使预测值向实际值靠近。用梯度下降的方式,对参数进行迭代。线性回归模型从零开始的实现1.生成数据集torch.randn函数来生成特征(1000*2的矢量);使用线性模型生成标签,需添加偏差,该偏差(torch.tensor函数获得)是通过正态分布随机生成的...

2020-02-14 19:47:01 535

空空如也

空空如也

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

TA关注的人

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