插入排序 下面是示意图: 直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的纪录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的纪录插入完为止,得到一个新的有序序列。[1] 例如,已知待排序的一组纪录是: 60,71,49,11,24,3,66 假设在排序过程中,前3个纪录已按关键码值递增的次序重新排列,构成一个有序序列: 49,60,71 将待排序纪录中的第4个纪录(...

问题描述: 一、第一种解题方法 (1)双指针法 (2)数组完成排序后,我们可以放置两个指针 i和 j,其中 i是慢指针,而 j 是快指针。  只要 nums[i] = nums[j],我们就增加 j 以跳过重复项。 (3)当我们遇到 nums[j]≠nums[i] 时,跳过重复项的运行已经结束...

帮师姐做今日头条笔试 我的一个错误的思路: 假设输入数据是10个数据:“10 3 7 5 1 10 3 7 5 1“” 一、始终维护一个最长不下降序列组合集合G,顺序每过一个数据,都更新保存当前的组合集合。 二、G中最长的vector为A1,第二长的为A2,以此类推。 三、具体的策略为: top指的是A的最后添加的数(末尾的数),down是开头的数 (1)在A[...

问题描述: (1)创建一个辅助函数,找出下一个不析相等元素的选表  如图数组: 下一个不相等元素为2,所以函数返回3 (2) 设         int i = 0; //被替换的元素的下标(重复的元素)         int j = 0; //要替换的元素的下标(不重复的元素) (3)第一轮while循环...

2.尾部的零

c  算法

  

2020-02-13 10:48:09

题目:设计一个算法,计算出n阶乘中尾部零的个数 样例:11! = 39916800,因此应该返回 2 挑战:O(logN)的时间复杂度     首先,我用了最笨的方法,源码如下:    先把和sum算出来,然后在每次除以10,如果余数为0则说明尾部有一个0,最后通过result累加得到最终值。可是结果显示 Time Limit ...

我们不妨来讲个故事。 现在有一条一人宽的巷子,如图所示,每次可以进去一个人,但是只能从最外面的人依次出来。我们用“最里面”和“最外面的人”来表示位置。 上图中最后一个人“小朋友”出来了以后。变成如下所示。 那我又再进来一个“小龙”呢? 当所有人都出来了以后呢? 因为我们每出来一个人,将“最外...

题目链接 首先这个题目必定是递归思想,因为大的图形当中又会套上小的图形 其次必须先确定图形的中点,因为由图形的中点可以确定下来图形的位置,从中间向周围加上中间五个方向分布进行递归图形,这里我通过递归一个图形的四个边界进行中点位置的递归 这里关键是求出data1与data2的长度,从而能够继续进行递归 data1可以看成是3的0次方加3的1次方一直加到3的n-3次方的和 使用次方叠加公式可得相应的结...

这个算法经常忘记,今天看了记录一下心得,自留用。 讲得比较好的: 字符串匹配算法KMP详细解释——深入理解 讲的比较详细的: 字符串匹配KMP算法的理解(详细) 简洁易懂版本: 转载一篇单字符串匹配KMP算法最好理解的文章 思路: 一般都先讲暴力匹配,这种情况下,每次都从字符串开头开始匹配,当子串长M,父串长N,复杂度是O(M*N) 匹配串的时候,例如:ABCDABD,每次...

【c++】素数

c  算法

  

2020-04-23 05:29:33

质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个正因数的数)。【维基百科】 知乎问题:哪个算法是判断素数的最简单算法  https://www.zhihu.com/question/19668324 Q:输入一个正整数 输出0到该范围内的素数 1 最基础的办法,用从2开始的每个数依次作余运算 运...

自己的代码:  运行效果:  PS:空格问题,输出的格式试了很多,最后一行加不加回车都是答案错误,冒号是复制的格式里面的,格式上应该不会导致答案错误。 原来比较函数前两个写成了<应该是<=改过来还是答案错误。(后面验证这里等不等于都无所谓) 困在这一整天了。 解决: 当若干学生具有相同姓名或者相同成绩时,则按他们的学号递增排序。 这句话是针对前面三种情况说的!不是只...

下面两种算法都是根据如果具体例子讨论 主串MainString: acabaabcabcacaabc 模式串ModelString: abaabca 1、BF算法 1)思路 分别用i,j记录主串MainString和模式串ModelString中当前正在比较的字符位置。i 初始值为0,j初始值也为0 当两个串均未到达串尾时: 若MainString[i] == ModelString[j],则++...

C++ Tea

C  算法

  

2020-06-17 00:31:02

Tea算法属于分组加密、对称加密的一种,对于对称加密算法,解密过程就是一种对加密过程的逆运算,根本不需要什么数学证明。简单来说就是我有两个数 a,b ,a+=k1b,b+=k2a,a+=k3b,b+=k4a.....a+=knb,b+=kna,最后存储的就是最后的a,b的值,那么我可以用a去还原b,还原后的b又可以去还原上一个a,以此类推,对称加密和把两根绳子螺旋捆在一起,然后反向旋转分开的过程。...