自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (1)
  • 收藏
  • 关注

原创 Python图片转换为视频

【代码】Python图片转换为视频。

2024-03-21 16:31:25 303

原创 C++算法入门练习——最大连续子序列和

如果大于等于0,那么我们新加入元素,如果是正的,就能够使得这个连续子序列和变得更长,而如果是负的,并且负的程度远大于前面的,那么下一个元素,就会自立起新的门户,而上一个的dp值已经是暂时的最大值,如果负的程度比较小,说明可以接受,因为可以通过吸收更多正值来缓解这一个负值。现有一个整数序列a1,a2,...,an​​​,求连续子序列ai...aj,使得ai+...+aj​​​最大。输出三个整数,分别表示最大连续子序列和、满足该最大和的连续子序列和的首尾元素的下标i、j​。①将这个元素与上一个进行拼接。

2023-12-04 16:59:23 302

原创 C++算法入门练习——最短路径-多路径

而后我们要遍历这个pre,当到达递归边界(v==s)时候,把路径加入到结果paths中保存,然后temppath弹出,继续寻找其他的路径。),每条边有各自的边权,代表两个城市之间的距离。而遇见d[u]+G[u][j].weight==d[newv]时,只需把这个新的路径结点也加入即可。而这个存储的是逆序,我们需要对每一条路径做一次逆序,然后再进行排序,从而进行输出。当我们遇见d[u]+G[u][j].weight<d[newv]时候,需要对之前的pre[newv]进行清空,重新存放。

2023-12-02 11:05:55 936

原创 C++算法入门练习——有向图判环

/如果该根节点进入不构成环,那么每个访问过的都应该重新设置为false,并且返回false状态表示该结点无法构成环。//如果成功是环,那么就不断返回递归true。判断是否为环,应该通过遍历图来看一次遍历是否所有结点都被遍历,如果是的话,说明构成一个环,特征为:遍历会回到最初的结点,否则不是。),如果从图中一个顶点出发,沿着图中的有向边前进,最后能回到这个顶点,那么就称其为图中的一个环。由此可知,比无向图的判定多了一个回溯问题,因为我们不知道哪个是有向图的起始根结点。

2023-12-01 14:28:10 325

原创 C++算法入门练习——数据流第K大元素

这里用个小技巧,输入时,如果已经当前堆有了k个数,那么再输入一个数后,要弹出,这样就可以保持堆里只包含k个数,而堆顶的数就是第k大的数。利用stl里的priority_queue自动实现最大堆排序。其中,第k大是指将序列从大到小排序后的第k个数。

2023-11-29 15:42:57 189

原创 C++算法入门练习——堆排序

堆排序。

2023-11-29 15:35:09 160

原创 C++算法入门练习——相同的二叉查找树

判断T1​和T2​​是否是同一棵二叉查找树。

2023-11-23 16:04:58 339

原创 微信小程序开发学习——顺序、选择、循环、数学函数

这里我们都用了局部变量that = 初始的this,因为在运行过程中this指向可能改变,因此用that可以避免因为指向改变导致的错误。并且需要注意一点:定义的参数,默认是字符串类型的,如果要变成数型运算,需要*1进行转换。callback函数为delay时间结束后执行的一个函数,any rest重置方法。取消由setTimeout设置的计时器,参数timeoutID为要取消的计时器的ID。全局变量即定义在所有函数之外的变量,能被该文件的所有函数使用。只需在js中写JavaScript的循环语句就行。

2023-11-21 22:14:08 500

原创 C++算法入门练习——树的带权路径长度

然后利用遍历,当遍历到叶子节点时候,sumweight加上当前节点的带权路径值。解题思路:每个节点存储weight和height值。现有一棵n个结点的树(结点编号为从。号结点),每个结点有各自的权值w。求这棵树的带权路径长度。

2023-11-19 16:43:05 378

原创 微信小程序开发学习——页面布局、初始导航栏与跳转

所有WXML元素都可以看作盒子,在WXSS中"box model”这一术语是用来设计和布局时使用盒模型本质上是一个盒子,封装周围的WXML元素它包括: 边距,边框,填充和实际内容,模型结构如所示。需要注意line-height和height的关联,如果二者相等,最终实现效果为在垂直方向上是居中对齐的。margin属性中分为4个:上右下左,即顺时针方向,如果我们只输入两个,则第一个为上下,第二个为左右。需要注意的是:在CSS中所有边界的长度,可以存在叠加,如果都为空,取最大的为最后的值。

2023-11-18 12:24:50 2166

原创 微信小程序开发学习——初识小程序

输入你想要显示的内容

2023-11-12 10:53:52 226

原创 C++算法入门练习——二叉树的最近公共祖先

注:二叉树上两个结点A、B​的最近公共祖先是指:二叉树上存在的一个结点P,使得P既是A的祖先,又是B的祖先,并且P​需要离根结点尽可能远(即层号尽可能大)。想法肯定是递归查找,利用二叉树的性质:左儿子和右儿子,如果在某一根节点的左右儿子找到了,说明该根节点为公共节点。利用递归的性质,然后自顶向下搜索,如果找到了就return即可。号结点),求两个指定编号结点的最近公共祖先。现有一棵n个结点的二叉树(结点编号为从。

2023-11-11 15:35:54 161

原创 C++算法入门练习——先序中序还原二叉树

递归,利用先序的2,将左儿子分为:左左儿子:1,左右儿子:4;利用先序的5,分为右左儿子为空,右右儿子为3。如例子中的:利用先序的0,将中序分为左儿子:1 2 4,右儿子5 3。因此可以利用先序的根,在中序中进行分治递归。),已知其先序序列和中序序列,求后序序列。现有一棵n​个结点的二叉树(结点编号为从。叶子节点的体现在于:PreL>PreR.先序是:根,左儿子,右儿子。中序是:左儿子,根,右儿子。

2023-11-10 17:21:24 182

原创 C++算法入门练习——带传送点的迷宫问题

带有传送点,我们只需要将传送目的点也加入队列即可。

2023-11-08 11:06:32 158

原创 C++算法入门练习——迷宫最短路径

DFS和BFS经典习题。

2023-11-07 20:01:09 517

原创 C++算法入门练习——回文链表

解题思路:构造正常的链表后,制作一个逆序链表,然后进行简单模拟比较就行。

2023-11-06 20:02:43 114

原创 C++算法入门练习——简单计算器

如果当前的小,那么就应该取两个操作数出来,然后再取操作符栈顶元素出来,再从操作数栈里取两个运算数进行运算,把运算结果压入操作数栈。然后把当前的操作符压入操作符栈。如果当前的比较大,那么应该先把操作符压入栈,然后读取下一个操作数,它两构成一次运算。给定一个仅由+、−、∗、/、整数组成的计算式(中缀表达式),计算它的值。需要注意的是,我们读取的数可能不是一位数的,因此需要进行数字转换。思路:建立两个栈,一个是操作数栈,一个是操作符栈。遇到操作符比较一下当前操作符与栈顶操作符的优先级。操作数存入操作数栈。

2023-11-02 13:45:19 92

原创 C++算法入门练习——合法的出栈序列

现有一个空栈s和一个正整数n,将1,2,3,...,n依次入栈,期间任意时刻出栈。然后给定一个出栈序列,问其是否是一个合法的出栈序列。1.该数大于栈顶的数,说明原先没有将该数入栈,那么应该先入栈到该数。3.该数小于栈顶的数,那么就说明该出栈序列不合法。2.该数等于栈顶的数,那么应该正常弹出。

2023-11-01 16:57:26 167

原创 C++算法入门练习——阶乘的质因子个数

给定一个正整数n,k,求n!利用结论:质因子p的个数 =故共有1+2+3=6个。

2023-10-28 14:18:02 207

原创 C++算法入门练习——大整数加法

大整数运算利用字符串类型,获取每一位上的数字进行运算,如果大于9,则发生进位,用一个flag状态来保存。

2023-10-27 10:51:00 213

原创 C++算法入门练习——约数个数

筛选素数表的巧用。

2023-10-26 14:39:33 1283 2

原创 C++算法入门练习——打印素数表

但如果我们直接暴力模拟从2到n去找素数表,时间耗费会很大。时间复杂度是O(Nsqrt(N)),n最大只到10^5次方。因此我们要想个办法去节省时间。一方面,我们可以精简求是否为素数的函数。求素数的方法我们都懂的,就是从2到sqrt(i)去遍历是否有约数。另一方面,我们可以设置一个状态表,让我们减少一些数进入循环。这些数——就是那些是素数的2倍、3倍、....到大于n。给定一个正整数n,输出[1,n]范围内的所有素数。

2023-10-24 20:49:12 134

原创 C++算法入门练习——西西弗斯串

对任意一个数字串,求出它数位上的偶数个数、奇数个数、数位总数,然后拼接起来得到一个新的数字串(不需要去掉前导零),接着对这个新的数字串同样执行上面的步骤,最终一定会得到123,也就是著名的西西弗斯串。现有一个数字串n,可以对它执行零或正数次上面的步骤,请计算至少需要多少次可以得到西西弗斯串。如果num<10是可以这样,但如果>10,转换结果将出错。不过有个小坑点,我们得到了奇数位数、偶数位数、总位数,如何将int转成string类型?正确做法其实还是应该对num求每一位上的数字,然后赋值给字符串。

2023-10-23 22:19:58 159

原创 C++算法入门练习——012对

解题核心思路:012对的问题可以这么看待,我们有个数组统计0,当遇到1的时候计算一次01对个数。当遇到2的时候计算一次012对个数。总共的个数 = 2前面有多少个01就有多少个012对,然后每个2的累加起来!给定由n个0或1或2组成的序列,我们把序列中从左至右(可不连续)存在的0、1、2称为。,问在序列中有多少个。

2023-10-22 17:10:11 112

原创 C++算法入门练习——木棒切割问题

给出n根木棒的长度,现在希望通过切割它们来得到至少k段长度相等的木棒(长度必须是整数),问这些长度相等的木棒的最大长度。然后因为我们找到的一个解可能不是最大的长度,因为可以有不同的解,因此应该是查找到第一个大于满足条件的。如果得到的小于给定的k,说明我们试错的f中的长度取大了,应该取小一些,否则应该取大一些。木棒切割问题,这里我们建立一个f求每次得到的木棒段数,直至我们得到的可以满足给定的k。

2023-10-21 11:31:28 205

原创 C++算法入门练习——旋转数组

旋转数组是指,对一个给定的位置,将数组中该位置右侧(含该位置)的所有元素移至数组最左侧后形成的数组。注:使用二分法实现。

2023-10-21 10:49:03 193

原创 C++算法入门练习——二分法寻找指定元素

因为可能存在重复的元素,那如果是找到了x之后,得继续让right=mid,这样去找到第一个x的下标。具体实现过程,读者可以画一个搜索过程,就会非常形象的理解。二分法就是,对于有序的序列,设置first、last、mid,mid = (first+last)/2.能够提高搜索的效率。在一个递增序列A(可能存在重复元素)中寻找一个指定元素x,如果能找到,那么输出第一个x的下标;如果不能找到,那么输出−1。如果num[mid]<x,那么应该要让left右移,left = mid+1;注:使用二分法实现。

2023-10-20 21:29:27 152

原创 C++算法入门练习——拼接最小数

这道题其实思路很简单,就是对输入的字符串进行排序,然后就是前导0,和全部为0的情况的特例考虑一下。27,270和270,如果要输出应该是27027027这样比27270270要小!给定n个可能含有前导0的数字串,将它们按任意顺序拼接,使生成的整数最小。但其实事实上会有个小坑点在里面,就是排序不是简单的s1<s2。前导0问题,只要加个flag和if语句即可解决。因此排序应该是s1+s2<s2+s1;

2023-10-19 16:04:09 108

原创 C++算法入门练习——区间不相交问题、区间选点问题

而对于区间选点问题,我们只需要在区间不相交问题中,小小修改,修改纳入区间条件:if(num[i].left>=num[templeft].right),只需要把等号去掉。理由是,我们每次取区间的左端点作为选取的点,这样就可以小区间内的点也覆盖了大区间内的点。然后取第一个的作为第一个取的区间,然后比较剩余区间里的,如果有其中的一个左端点大于等于已去区间的右端点,那么就应该纳入,这样就可以不相交。利用贪心思想,先将这些区间排序,按右端点最大的优先来排序,如果右端点相同,那么取左端点小的,这样区间短。

2023-10-19 15:38:57 114

原创 C++算法入门练习——子集、全排列、组合问题

子集、组合、全排列问题其实是一个套路。

2023-10-19 13:49:57 188

原创 C++算法入门练习——数塔

总的来说,虽然可以从上向下计算数塔的最优路径和,但自底向上的动态规划通常更为常见和高效,因为它避免了重复计算,而且更容易理解和实现。

2023-10-16 15:28:19 867

原创 C++算法入门练习——序列求最大值

给定n个正整数,求它们的最大值。

2023-10-15 15:04:13 218

原创 C++算法入门练习——字符串出现次数

我们应该怎么样构造散列映射呢?

2023-10-15 09:42:33 1237

原创 C++算法入门练习——2-SUM-hash

注:使用ℎasℎ法实现。

2023-10-13 15:50:16 59

原创 C++算法入门练习——考场排名

思路:可以很巧妙地构思:因为每次是输入的同一个考场的学生信息,因此可以用一个数组去存所有学生,每次录入完一个考场后的学生,对这些学生当即进行成绩排序。最后再对总的学生的姓名进行排序。按考生姓名的字典序从小到大输出,每行为一个考生的姓名、分数、考场内排名,用空格隔开。给定n个考场中所有考生的姓名、分数,输出这些考生的考场内排名。

2023-10-12 20:30:24 110

原创 C++算法入门练习——简单排序

简单排序中有三种:①冒泡排序 ②选择排序 ③插入排序。

2023-10-12 20:26:54 95

原创 机器学习入门——西瓜书第一章

无论学习算法多么聪明或者笨拙,其期望性能是相同的,因为脱离具体问题,泛谈什么学习算法更好是无意义的,因为没有完全通用的完美模型。将训练集中的数据进行一定的分组,每组称为一个簇(cluster)。“记住样本数据”,在预测时候找对应的样本,若无,则报错的学习。在假设空间中去除与正例不一致,与反例一致的假设所剩余的假设集合。若为离散值,则为分类问题。若为连续性,则为回归问题。即机器学习所得模型适用于新样本的能力,称为泛化。若全部训练数据拥有标签,那么为监督学习。若全部都没有标签,那么为无监督学习。

2023-10-11 21:12:51 27

原创 C++算法入门练习——公共前缀

注意这个问题与LCS的区别,公共前缀要求是从第一个字符开始的接连的最长串,而LCS是可以是字符串里最长的那一公共部分。②然后对每个字符串进行比较每一位是否一样,如果存在一样的,那么我们输出该字符,直到遇到了不一样的,结束循环。①我们要先找出n个字符串里最短的那个的长度是多长,以那个作为基准。给定n个字符串,求它们的公共前缀。

2023-10-11 20:19:17 78

原创 C++算法入门练习——单词倒序

我们在输入如果单纯使用cin或者scanf,那么是无法读取空格的,而要采用getline或者cin.getline来读取一行。注意在dev C++中和VS Code中,这个换行符对EOF无效,要ctrl+z三次才能结束,但在判题系统上会是正确实现的。而本题中,我们正是要利用这个空格来间隔开单词,那么用scanf就有意料之外的好处了,直接可以分割单词,然后逆序输出即可。给定一堆用空格隔开的英文单词,输出这些英文单词的倒序(单词内部保持原序)。粗暴的思路就是利用空格,然后收集每一个单词,然后做一个倒序输出。

2023-10-11 16:12:22 379

原创 机器学习入门——西瓜书第一章部分课后习题

西瓜书课后习题部分答案

2023-10-10 22:21:04 217

nt6启动菜单自动修复

可以让您的电脑随便切换系统,哦,亲。wsda

2013-08-15

空空如也

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

TA关注的人

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