- 博客(10)
- 收藏
- 关注
原创 笨人小白的温故知新——排序(3)
我来啦!今天依旧是的一题多解。(不厌其烦地附上题目)【题目描述】给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。【输入】第1行为 N;第2行为 N 个正整数,其间用空格间隔。【输出】增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。【输入样例】10【输出样例】1,3,5,7,9方法四:冒泡排序我在大佬源代码的基础上,将q[j]与q[j+1]的复制与赋值换成了swap()函数!嘻嘻,我会a little bit举一反三了!
2025-12-21 20:31:28
490
1
原创 笨人小白的温故知新——排序(2)
这是一个一题多解的博客!题目描述】给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。【输入】第1行为 N;第2行为 N 个正整数,其间用空格间隔。【输出】增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。【输入样例】10【输出样例】1,3,5,7,9方法一:插入法这就是插入法的代码模板。它的原理很简单,就是以一个乱序的数组中的第一个数为基石,通过后面的数与前面的数字比较,将数字逐一为它们找到自己的位置。
2025-12-20 20:16:44
330
原创 笨人小白的温故知新——递归(6)
这是一道很经典的题。当然,我一开始也没有做出来,但是!我当时发现了一些规律!只是当时不知道怎么表达而已(傲娇)。下图,是汉诺塔问题的抽象模型。
2025-12-19 19:58:52
309
原创 笨人小白的温故知新——递归(5)
了。首先定义,这个递归函数的主要作用是标记没有找到配对的“(”,只要发现了“(”,我们就调用这个奇妙的递归函数。只要我们发现了有“)”与之配对,我们就不标记“(”而这个递归函数,也可以保障有配对的“)”不会被标记。这个指针pin也很是精妙,它“继承”了k旧的值,并且可以帮助标记没有配对的“(”。因为递归就像多层大蛋糕,进行完一层后,会自动回到下一层。这段代码里也有很多我新学到的函数。下面是我查到的相关资料。1.fill():用一个给定值去填充所有元素。fill_n():用一个给定值填充前n个元素。
2025-12-18 19:50:42
527
原创 笨人小白的温故知新——排序(1)
这次,我来分享一下我新学习的!网上有很多大佬整理了归并排序,并且超级厉害的做了动图。就是这个大佬的下面我想回顾总结一下我现在对归并排序的认识与理解,并且把它融入这道题中。
2025-12-17 20:21:01
544
原创 笨人小白的温故知新——递归(4)
其实本来是一段很简单的代码,但是这个题带给我的收获很大,所以我决定来做一个自己的反思回顾。来讲一下我做这道题遇到的问题(主要是解决运行超时的问题):1)我一开始并没有用记忆化,导致运行超时。2)我用了一个记忆化(但是是错的)!pell(k)试图判断返回值是否为 0,但pell(k)本身又会无限递归,永远无法执行到后续逻辑;你以为这就结束了?但是却运行超时了。why?
2025-12-16 09:07:52
417
原创 笨人小白的温故知新——递归(3)
我们把目光聚焦到第k位,让k、k+1、k+2······等位上的字母,均有机会坐到第k位上,而第k+1位、k+2位呢?那是下一个paixu()函数需要管的事,不归这一个函数管。(这就是我总是没有思路的原因,总是看着第k位上的,想着以后那些位该咋办)笨笨的我依旧没能做出来,仍然是参考大佬的做法,我现在来进行反思回顾大佬的思路,汲取经验。大佬的思路应该是:先固定当前位,再去固定下一位,直到所有的位置都被固定住。2)接着,3 => 2 => 1有着明显的递减规律,3是6的一半。针对第三个点,答案就很显然啦!
2025-12-15 20:00:02
885
原创 笨人小白的温故知新——递归(1)
2*5是由10分解而来的,这时,我们很容易想到递归:20的分解数有一部分是10的分解数贡献的。因为要保证因数>=前一次分解出的因数,所以是fenjie(k/i,i)先通过分解20来找规律:20 = 20 = 2*10 = 4*5 = 2*2*5 共4种。因为最先提出来的因数小,所以k/i才有可能继续提出因子,所以k/i作为下一步要分解的数。20 = 2*10 = 10 *2,显然这是两种分解方法是同一种。每进行一次分解,就要保证因数>=前一次分解出的因数。但这个比较复杂,所以我参考了大佬的做法,现在开始~
2025-12-14 09:41:52
339
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅