![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
文章平均质量分 81
AfricanCousin
恍然入梦 剑舞惊鸿
展开
-
python踩坑
②struct.unpack ‘>IIII’:先解压四个int型数据,因为该图像二进制文件前4个数据分别为magic,num,rows,cols,与具体数据无关,可以跳过。以minist手写数据集为例子,这种数据后缀名为.bin或者压根没有,借助struct来读数据。其实参数主要考虑的是对齐的操作,根据二进制文件不同的数据类型进行设置。①这边的操作是先解压,再打开二进制文件,打开的时候文件名去掉.gz。这种属于计算每一次放数据的offset,老老实实一个数据一个数据放。①没有解压,直接打开文件。原创 2022-09-27 16:42:18 · 739 阅读 · 0 评论 -
新的解题思路
查询 1 :删除第 0 个元素,nums 变成 [0,2,5,6,1] ,最大子段和为子段 [2,5,6,1] 的和 14。查询 2 :删除第 3 个元素,nums 变成 [0,2,5,0,1] ,最大子段和为子段 [2,5] 的和 7。查询 3 :删除第 2 个元素,nums 变成 [0,2,0,0,1] ,最大子段和为子段 [2] 的和 2。查询 4 :删除第 4 个元素,nums 变成 [0,2,0,0,0] ,最大子段和为子段 [2] 的和 2。下标1被添加,连接了端点1到端点2。.........原创 2022-08-23 23:36:51 · 116 阅读 · 0 评论 -
C++数据结构
value初始值基本都是0啊、空啊(根据定义的数据类型)5(代表有几个数据)原创 2022-08-18 11:28:45 · 291 阅读 · 0 评论 -
八股(一天更新一点)
分类回归都可以。返回的是类别/数据。优点:可解释性、可以处理数值类和类别类的特征缺点:不稳定(鲁棒性差)、结点太多导致过拟合、构建树是顺序化的过程,不好被并行。原创 2022-08-10 16:52:01 · 397 阅读 · 0 评论 -
图/环 (更新至8.15)
请你返回一个从 node1 和 node2 都能到达节点的编号,使节点 node1 和节点 node2 到这个节点的距离 较大值最小化。这道题的解法其实不难,求node1、node2到所有结点的距离,然后遍历距离,找最小的最大值。——从入度为0的结点出发,进行拓扑排序,遍历到的结点入度- 1。给你一个 n 个节点的 有向图 ,节点编号为 0 到 n - 1 ,每个节点 至多 有一条出边。解释:从节点 0 到节点 2 的距离为 1 ,从节点 1 到节点 2 的距离为 1。(在本题中,处理入度,甚至还做了。..原创 2022-08-10 14:16:44 · 207 阅读 · 0 评论 -
动态规划(更新至8.8)
动态规划也做了有一些了,挑选一些值得记录的。题1给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成两笔交易。这题是难度升级版。之前不限制交易次数的时候标准答案的DP将DP数组的第二维设置成:dp[ i ][0]: 手上没有股票dp[ i ][1]: 手上有股票(所以也是新的思路哈,dp数组的第二维可以是不同的状态)这题多了一个交易数量的限制,我当初还很傻逼地以为要建立dp数组的第三维…其实不就是多了几种状态吗。这题我们设原创 2021-09-17 11:20:23 · 82 阅读 · 0 评论 -
树(更新至11.17)
2.后面的判断是后序遍历,请注意a和b的值是一直传递上去的,而并不是重新定义。也就是说,如果底部某一个结点遍历到了p的值,会一直顺着回溯方向往上。我的方法每次递归返回两个值①有无结点1?第一次两边都有的就是结果。题解的方法每次递归只返回一个值是否存在结点1或者结点2。往上回溯,因为公共祖先一定不可能在下面,已经没有往下走的必要了。1.前置增加判断条件若碰到p后者q,直接。其实吧,这题我用一种偏复杂的方法做了。①两边都没有返回None。②有一边没有返回另一边。③两边都有返回root。...原创 2022-07-28 16:08:22 · 121 阅读 · 0 评论 -
排序(更新至7.27)
但是假如数组是[1,2,3,4],1本来就应该停在第一个位置,输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。这个快排的代码和上一次的贴的代码有点不一样,更加的简洁,其实思想也很好理解,每次确定。可以脑补一下假如数组是[1,2,3,4]数组一路顺滑,然后j疯狂减,超出索引。这题的思路其实不难,用到自定义排序方法。用这种方法将数组中的元素从小到大排序即可。输入[3,30,34,5,9]输出“3033459”1.while循环还有。输入[10,2]...原创 2022-07-27 16:34:25 · 59 阅读 · 0 评论 -
回溯(更新至8.29)
我感觉回溯的题都挺难的,改用python之后重新整理一个合集吧。4.26 字符串的排列组合输入一个字符串,打印出该字符串中字符的所有排列。输入:s = “abc”输出:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”]回溯的思路显而易见,但不知道怎么系统地写这个框架。我把这道题的框架理解为:确定第1个字符、确定第2个字符、… 、确定第n个字符。中间还要防止重复的问题。题解的亮点在于:①通过交换字符来完成确定字符的操作②通过Set来防止重复字符,Set不是全局的,只影响原创 2022-04-26 11:10:32 · 79 阅读 · 0 评论 -
栈、队列(更新至9.14)
今天不知道为什么 好困什么时候要用到栈呢,真的搞不太清楚,先上题给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。先给出简单解法:依次遍历每一个矩阵宽度,找到这个宽度的边界。比如:对于height[0] = 2,我们找到它的边界是左0右0,面积是1;对于height[2] = 5,我们找到它的边界是左2右3,面积是2。但时间复杂度是O(n2)O(n^2)O(n2)其实我们思考一下,找边界的问题,就是找到左/右边原创 2022-06-30 15:19:52 · 80 阅读 · 0 评论 -
运用最小堆(更新至8.24)
Python语言中的堆为最小堆,所以用Python刷题都是在最小堆的基础上。先说一个结论:最大堆解决取最小的问题,最小堆解决取最大的问题例题输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。例如输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]根据之前的结论,取最小用大根堆。那具体的思路是:维护长度为k的大根堆,新的数和堆顶元素比较,如果小于堆顶,则堆顶出来,新的元素进去,这样原创 2022-04-22 14:55:38 · 915 阅读 · 0 评论 -
二分法(更新至7.21)
更好地让我理解用二分法解决第k小及第k小的变体问题。第k小/大其实这道题在牛客出现过,思路是用快排,但我现在也忘了- -二分法 + 快排的思路是:设数组元素个数为n,每次利用快排对当前的第一个数进行索引确定。①:如果索引 = k - 1,皆大欢喜,返回;②:如果索引 < k - 1,往右边找;③:如果索引 > k - 1,往左边找。附上代码:import java.util.*;public class Solution { public int findKth(i原创 2022-04-12 16:52:01 · 123 阅读 · 0 评论 -
Python刷题常用数据结构
咱就是说,现在不用java刷题了,记录一下用python刷题的数据结构以及调用它们的方式。原创 2022-04-02 17:17:45 · 2112 阅读 · 0 评论 -
shelf
6.7shelfshelf数据存储方案,有一点像字典。比如我新建一个demo,里面的内容是name:谁谁谁、info:谁谁谁…注意:这里的谁谁谁可以是字典/函数/元组等复杂的数据结构。具体例子见链接shelve模块的详述...原创 2021-06-07 19:47:34 · 131 阅读 · 2 评论 -
12.9
12.9我终于更新博客了!呜呜呜最近有点小懒各位爸爸们体谅一下。最开始是打算整理这次算法作业的,但这次的算法作业也太简单了8(狗头保命)。Greedy,目光短浅算法的作业就是猜一猜思路一条道走到黑就可以了。这次更新一些矩阵编程和机器学习相关的内容。np.argsort在奇异值分解的编程作业中,要对求出的特征值进行大小排序,之后相应的左右矩阵要按照最大特征值的顺序进行列变换。np.argsort的作业是返回一个数组从小到大的索引,我查了一下只能返回从小到大不能返回从大到小,于是可以这样操作:sort原创 2020-12-09 17:03:48 · 172 阅读 · 2 评论 -
11.21
OJ上恶心人的数据好啦又到了OJ作业的时候。这次的OJ作业是DP,不同于上一篇DP,由于要上机操作,加上出题者会给你恶心的测试样例卡你,所以多了很多实际的问题。题目:给定一个数组(long long型),最多可以删除一个数据,求最大的子数组和。如:[1,2,-3,2] 输出5[1,-2,-2,3]输出3其实我感觉DP的难点就是思路,有了思路就很好构造DP数组。由于我之前做的DP题目比较少,我看到了这题陷入了一个惯性思维:构造一个二维数组,不停遍历,返回的dp[n][n]值则为最大值?显然是错了,原创 2020-11-21 13:32:13 · 114 阅读 · 2 评论 -
11.19
11.19彩笔表妹的DP之旅换硬币求最小重量差彩笔表妹的DP之旅换硬币题目:给你n种面值的硬币(比如2元,5元,10元)(不要问我为什么有10元的硬币)和一定数量的钱m,求可以换成功的方法数。其实这个问题我上半年复试的时候有点印象,然后我今天又有幸找到了之前的视频重温了一下。视频中的题目问的是求交换成功的最少硬币的数量,我寻思这整挺好啊,换汤不换药。视频中的代码为:dp[0]=0 for(i=1;i<=M;++i){ //i为从1开始遍历金钱数 dp[i]=Integer.MAX_原创 2020-11-19 22:14:12 · 287 阅读 · 2 评论 -
11.15-16
11.15-16终于找出困扰我一天的bug了,哭哭哦数组与集合数组!运行代码时发现:preds = np.argmax(probs, axis=1)probs好像是一个二维数组竟然返回的是列最大值的索引!我非常惊讶,再三确认了argmax的函数。没错啊 argmax:返回数组最大值的索引,如果数组是二维数组的话:axis=0返回的是每列最大的索引,axis=1返回的是每行最大的索引。错误的原因在于probs不是数组!是一个集合,里面有一个数组!数组与集合数组的区别在于:1.数组(np原创 2020-11-16 01:48:38 · 165 阅读 · 0 评论