自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 外星人入侵(python设计小游戏)

可以直接复制我这个图片,我这个后缀是bmp,如果用网上找的图片的话要注意一下后缀问题,不然有一部分代码会报错的,需要自己更改。下面的就是你操控的飞船,上面的是要消灭的外星舰队,左上角是剩余的生命,中间是历史最高分,右边是当前分数以及当前阶段。如果遇到了一些报错,在本地运行不了的情况,可以去这个连接直接下载我的完整项目,不过正常情况应该是不得报错的,,我把整个项目放在了我这个GitHub仓库里面,需要的可以自取。由于设计的是全屏的,所以电脑不能截图。

2025-03-28 21:36:37 1770 2

原创 ResNet的简易实现

如果觉得内容对你很有帮助,不妨关注一下,未来会持续更新。

2025-03-25 20:35:27 389

原创 GoogleNet的简易实现

这里使用GooleNet对MNIST手写数据集进行分类,最后的效果达到了在测试集98%的准确率。如果喜欢内容不妨点个关注,后续会持续更新。

2025-03-25 20:32:25 392

原创 MNIST手写数据集多分类问题

因为这里是把一个平面的每一条宽截断,然后连接在一起,之后进行训练的,所以肯定会有信息的遗漏。如果你没有下载MNIST数据集,可以把我代码中的train_dataset以及test_dataset的root换成一个你自己的地址,它会自动帮你把数据集下载到你那个地址上。

2025-03-20 15:00:46 427

原创 239. 滑动窗口最大值

这道题我一开始的想法是设计right,left两个指针,right比left多走k步,然后记录right遍历过程中的最大值,记住它的位置,然后right和left一直慢慢往右走,同时观察left有没有把之前记录的最大值踢出去了,然后不断遍历。比如说:2,3,4,当你看到4的时候,说明前面的2,3不可能变成最大值了,直接剔除即可,但是遇到,2,4,3这种,3是不可以剔除的,因为你不晓得在滑动窗口向右移动的时候,3会不会成为新的最大值。的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的。

2025-03-16 20:33:37 691

原创 3. 无重复字符的最长子串

这题可以使用滑动窗口的方法来做,设置一个right和left,right一直向右移动,并且设置一个哈希表来存储遍历到的字符,当right遍历到的字符有重复时,通过不断删去left对应的字符来观察是否满足没有重复字符,并对比ans。,请你找出其中不含有重复字符的。请注意,你的答案必须是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。,所以其长度为 3。,所以其长度为 1。,所以其长度为 3。

2025-03-15 20:23:52 354

原创 梯度下降法以及随机梯度下降法

下面是随机梯度下降法,由于鞍点的存在(就是导数为0的点),当训练遇到鞍点的时候,根据weight更新的公式来看,就会一直陷在鞍点里面,这时候,可以使用随机梯度下降法。相比与梯度下降法,这个方法的运行效率是很低的,因为它不能并行计算每个x的值,但是准确性得到了提升。梯度下降法就是在更新weight的时候,向函数值下降的最快方向进行更新,具体的原理我就不再写了,就是一个求偏导的过程,有高数基础的都能够很快的理解过程。

2025-03-14 22:28:51 428

原创 86. 分隔链表

这题可以把这个链表分解成两个链表,然后再把它们拼接在一起。遍历整个链表,把比x小的数放在第一个链表里面,大于等于x的数放在第二个链表里面,最后再把这两个链表拼接起来就可以得到答案。两个分区中每个节点的初始相对位置。,请你对链表进行分隔,使得所有。给你一个链表的头节点。

2025-03-14 19:59:02 347

原创 手搓Kmeans聚类(仅代码展示)

这里不过多赘述Kmeans算法的具体逻辑了,我这里用Kmeans聚类对鸢尾花数据集进行聚类分析。对于鸢尾花数据集如果搜索不到的话可以在我的github仓库里面下载(如果能star一下那就更好了),如果是网上找的数据集需要注意一下标签和我代码的标签能不能对的上,

2025-03-13 22:47:26 440

原创 P1046 [NOIP 2005 普及组] 陶陶摘苹果

第一行包含 10 个 100 到 200 之间(包括 100 和 200)的整数(以厘米为单位)分别表示 10 个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。陶陶有个 30 厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知 10 个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。这道题属于简单题,我目前没有想到什么比较好的思路,想到的只是把陶陶能摸到的举例加上30,然后和所有的举例进行遍历,得到答案。

2025-03-13 18:27:20 362

原创 P1035 [NOIP 2002 普及组] 级数求和

这是一道入门题,根据题目给出的条件列代码就行了,需要注意的是sn必须是double类型的,不然1/n会一直等于0,陷入死循环。已知:Sn​=1+21​+31​+…显然对于任意一个整数 k,当 n 足够大的时候,Sn​>k。现给出一个整数 k,要求计算出一个最小的 n,使得 Sn​>k。对于 100% 的数据,1≤k≤15。NOIP 2002 普及组第一题。

2025-03-13 17:43:06 280

原创 160. 相交链表

这里可以用双指针的方法来解决这道题,具体的做法就是让两个指针把A,B两个链表都遍历一遍,因为两者长度之和是相同的,找到两个指针指向相同的值。,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回。如果程序能够正确返回相交节点,那么你的解决方案将被。评测系统将根据这些输入创建链式数据结构,并将两个头节点。,函数返回结果后,链表必须。的输入如下(你设计的程序。整个链式结构中不存在环。给你两个单链表的头节点。

2025-03-12 20:05:58 272

原创 128. 最长连续序列

这道题可以使用哈希集合来做,把nums放进一个哈希集合里面,然后在里面去遍历寻找最长的序列。需要注意的是,如果这个数的上一个数出现在了这个哈希集合里面,那么就不需要遍历现在这个数了,因为它上一个数都在里面,那肯定有比现在长的序列。如果没有这么去限制的话就会超时。,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。最长数字连续序列是 [1, 2, 3, 4]。请你设计并实现时间复杂度为。给定一个未排序的整数数组。

2025-03-12 19:52:25 182

原创 C++相关数据结构的API调用

接下来分别展示动态数组,链表,队列,栈,哈希表的相关代码。由于之前用的C语言,对于实现相关数据结构需要自己手动去做,比较麻烦,现在学习了C++关于数据结构的一些基础操作,来简便刷题的过程。

2025-03-12 19:32:50 582

原创 53. 最大子数组和

这道题我一开始想到的方法就是用滑动窗口去做,但是根据滑动窗口的限制条件貌似不适合这道题去做。这道题可以使用前缀和,把数组的最大数转换成两个前缀和相加,即遍历到的数的前缀和减去之前的最小前缀和。,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。连续子数组 [4,-1,2,1] 的和最大,为 6。是数组中的一个连续部分。

2025-03-11 20:06:46 498

原创 118. 杨辉三角

这是一道比较简单的动态规划的题目,主要需要知道的就是如果把这个数组左边都对齐的话,那么它每一列的第一个元素和对角线的那个元素都是1,然后根据下面的那个元素是上面两个元素相加得到的这一个条件来进行动态规划即可。在「杨辉三角」中,每个数是它左上方和右上方的数的和。生成「杨辉三角」的前 numRows。给定一个非负整数 numRows。

2025-03-11 19:35:43 347

原创 977. 有序数组的平方

这是一道比较简单的题目,注意到这个数组是有序的,那么我们可以先去对比两端的值,因为平方的最大值只会出现在两端,然后慢慢向内收缩,时间复杂度是O(n)。平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]组成的新数组,要求也按。

2025-03-09 23:01:48 183

原创 209. 长度最小的子数组

这道题可以用滑动窗口的方法,首先确定遍历终点的位置,然后把从开始到终点处的所有值进行相加,如果大于等于target,则记录长度数,然后依次去除掉前面的项,直到满足不了大于等于target这个条件为止,然后终点的位置继续往后遍历,然后进行同样的操作。如果不存在符合条件的子数组,返回。是该条件下的长度最小的子数组。找出该数组中满足其总和大于等于。个正整数的数组和一个正整数。

2025-03-09 20:21:49 388

原创 69. x 的平方根

同时,这题还有一种更好的思路,就是用二分查找来做,就是每次观察最中间的那个数字是不是正确答案,如果最中间的那个数字的平方小于x,就把left指针移到中间,反之就把right指针移到中间,这里对这种方法没有代码的展示。这是一道比较简单的题目,直接模拟即可,需要注意的是这里使用不了int类型,因为数据量超了,这里采用long long。8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。不允许使用任何内置指数函数和算符,例如。由于返回类型是整数,结果只保留。

2025-03-08 22:54:54 273

原创 167. 两数之和 II - 输入有序数组

这里我使用的双指针的解法。注意到数组的单调不减的,这里可以把两个指针分别放在数组的左边和右边,如果相加刚好等于target,则直接返回,如果target更大,那就需要把左指针向右移动,因。-1 与 0 之和等于目标数 -1。因此 index1 = 1, index2 = 2。2 与 7 之和等于目标数 9。因此 index1 = 1, index2 = 2。因此 index1 = 1, index2 = 3。你所设计的解决方案必须只使用常量级的额外空间。,请你从数组中找出满足相加之和等于目标数。

2025-03-08 20:29:10 298

原创 135. 分发糖果

这道题是一道贪心算法的题目,你需要保证相邻两个小孩中,评分高者得到更多的糖果,然后需要返回最小糖果值。这里,每次遇到评分高的小孩就多给一个糖果。由于每个小孩都需要给一个糖果,所以我先把数组的值赋值为全1,然后从左往右遍历,遇到评分更高的我就加1,多给一个糖果。然后现在是完成了右边比左边高的检查,下面从右往左遍历,遇到评分更高的多给一个糖果。你可以分别给第一个、第二个、第三个孩子分发 2、1、2 颗糖果。你可以分别给第一个、第二个、第三个孩子分发 1、2、1 颗糖果。表示每个孩子的评分。

2025-03-07 23:08:07 483

原创 快速排序(C语言实现)

这里先选择最后一个元素作为基准,观察整个数组中间有多少元素是大于这个基准的,有多少元素是小于这个基准的。小于的放在这个元素前面,大于的放在这个元素后面,最后再把基准放在正确的位置上面。上面的基准把整个数列分成了两个部分,接下来对这两个部分再进行同样的操作,一直往复,直到low >=high。这里函数的主要目的是把两个元素对应的地址进行交换,这里是为接下来定位函数服务的。

2025-03-07 18:30:34 329

原创 122. 买卖股票的最佳时机 II

我这里的思想就是一赚钱就卖掉,具体的展现是,这里用示例1为案例,[7,1,5,3,6,4],遇到后一个比前一个大就直接卖掉,这样答案就是(5-1)+(6-3)刚好是对的,当然这里要先把ans设置成0,因为有可能是一个递减的数列。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。

2025-03-06 19:40:18 478

原创 80. 删除有序数组中的重复项 II

这里可以定义slow=2,fast=2,以示例1为案例,[1,1,1,2,2,3],一开始slow和fast都是指向第三个数,然后你可以判断这个数和slow-2对应数是否相等,不相等的话说明同意的数超过了3个,这里就要把fast对应的数赋值给slow-2对应的数,然后两个指针都自增。读者可以借助往下列举[1,1,1,2,2,3]的变化情况,发现是符合需求的。这里要注意的是我上面加粗部分在代码中的表现,我一开始因为缺少这部分内容一直false。不要使用额外的数组空间,你必须在。,返回删除后数组的新长度。

2025-03-05 20:11:17 303

原创 383. 赎金信

这里的要求是用magazine中的字符来完成ransomNote的编写,这里可以先创造一个空的数组,遍历magazine中的字母,使字母对应的值进行加1的操作。然后就可以用这个数组对magazine里面字母出现的次数进行一个统计。然后再遍历ransomNote,同时进行减1操作,当发现其对应的值为0时说明不能构成,返回false,反之true。

2025-03-05 17:18:56 447

原创 134. 加油站

从 3 号加油站(索引为 3 处)出发,可获得 4 升汽油。你无法返回 2 号加油站,因为返程需要消耗 4 升汽油,但是你的油箱只有 3 升汽油。你不能从 0 号或 1 号加油站出发,因为没有足够的汽油可以让你行驶到下一个加油站。开往 3 号加油站,你需要消耗 5 升汽油,正好足够你返回到 3 号加油站。开往 2 号加油站,此时油箱有 6 - 4 + 3 = 5 升汽油。开往 0 号加油站,此时油箱有 4 - 3 + 2 = 3 升汽油。开往 1 号加油站,此时油箱有 3 - 3 + 3 = 3 升汽油。

2025-03-04 23:30:46 630

原创 189. 轮转数组

这题可以使用原地反转数组的方式实现,首先举个例子证明这种方法是可行的,这里就使用实例1:[1,2,3,4,5,6,7]最后对k后面的数字进行一次反转就可以得到结果:[5,6,7,1,2,3,4]然后对前k(k=3)个数字进行反转变成:[5,6,7,4,3,2,1]对他整体反转后变成:[7,6,5,4,3,2,1]向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100],将数组中的元素向右轮转。

2025-03-02 17:46:53 279

原创 基于LSTM对功率数据进行预测

原始数据的时序图如上所示,接下来我没有对数据进行异常值的剔除,直接调库使用LSTM对时序数据进行预测。下面是训练的误差图像。均方误差 (MSE): 0.0021471907641978207。均方根误差 (RMSE): 0.04633778980700116。平均绝对误差 (MAE): 0.03492523210102954。拟合优度 (R^2): 0.7551652920271041。

2025-03-01 23:38:00 422

原创 11. 盛最多水的容器

这是一道双指针的题目,定义left,right两个指针分别指向开始以及末尾,然后开始计算能够装水的面积。然后找到左右长度更短的一方,对其进行向内位移的操作,去寻找更长的柱子,因为找到更长的柱子,它的储水量才可能增加(是才可能,不是一定)。轴共同构成的容器可以容纳最多的水。找出其中的两条线,使得它们与。返回容器可以储存的最大水量。

2025-03-01 20:18:22 304 2

原创 125. 验证回文串

这题主要就是需要知道两个函数,isalnum和tolower,然后就简单了。我再写下面粘贴的这段代码的时候没有加上continue,所以有案例就一直通过不了。可能不加这个continue会导致错误的跳过了一些字符。如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个。字母和数字都属于字母数字字符。

2025-02-27 21:20:17 116

原创 45. 跳跃游戏 II

这道题也是一个贪心问题,每次跳跃都需要跳跃到所能到达的最远的地方,比如说看这道题的示例:nums = [2,3,1,1,4],这里第一步最远可以跳两格,在两个内数字3是最大的,所以此时需要跳跃到数字3的位置,然后依次类推,观察是否能跳到结尾,像这样一直不断取局部最优。向后跳转的最大长度。生成的测试用例可以到达。处,你可以跳转到任意。

2025-02-26 22:58:06 169

原创 121. 买卖股票的最佳时机

这是一道典型的贪心,但是由于自己还是刚开始不久的菜鸡,对于解答还是参考了题解。这道题的大致思路就是从0到pricesSize-1遍历卖出彩票的日子,找到每次卖出彩票日子之前的最低价格,两者进行相减就是当天卖出彩票的最大收益,然后对比每一天卖出彩票收益,找到最大值。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回。设计一个算法来计算你所能获取的最大利润。买入这只股票,并选择在。

2025-02-26 19:35:38 315

空空如也

空空如也

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

TA关注的人

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