- 博客(9)
- 收藏
- 关注
原创 每日一题:与对应负数同时存在的最大正整数(C语言)
我们可以考虑一下一次for循环来确定要找的负数,例如示例一中我们可以先找-1,然后再来一个for循环去找后面的数有没有和它是相反数,如果找到就记录下来,找不到就再次循环即可,然后每一次第二层for循环结束后我们就比较记录的值哪个是最大的即可,也就是要求的k。不过问题不大,按照示例一为例,假如我们找到数组元素-1,那么如果还能找到1(-(-1)),也就是-1的相反数,那么满足题意了,而进一步满足最终要求,需要找到最大值,示例一就是-3对应的3了,是不是就明白了。,如果不存在这样的整数,返回。
2023-05-13 21:09:42
199
原创 数据结构->线性枚举:将找到的值乘以 2(C语言)
题目的意思还是比较清晰的,第一轮先找到数组元素为original的数,如果能找到这个数,就乘2再去下一轮重复上述操作直到找不到返回当前original的值,当然如果第一轮就找不到也是直接返回的。我们先写一轮查找是怎么样的,先遍历整个数组元素查找有没有目标值。- 12 能在 nums 中找到。- 6 能在 nums 中找到。6 * 2 = 12。- 24 不能在 nums 中找到。因此,返回 24。- 3 能在 nums 中找到。那么这一次的算法学习就结束了,我们再下一章节再会。中搜索的第一个数字。
2023-04-29 21:36:53
163
原创 第三大的数(C语言)
分析:看一下这道题题目不是很难,第一个注意点是返回第三大的数,重复的数字不能重复算上,这一点在实例3中很明显,首先想到的就是可以对数组进行排序,然后加一些限定条件来找到第三大的数是哪个。可以用C语言的库函数qsort(),函数需要传递的参数是数组名,数组元素个数,元素的字节大小和比较函数,这个比较函数其实在这道题有点坑,那么正常来看代码就是这样。注意,要求返回第三大的数,是指在所有不同数字中排第三大的数。第三大的数不存在, 所以返回最大的数 2。如果不存在,则返回数组中最大的数。第三大的数是 1。
2023-04-28 21:48:49
710
原创 最大连续 1 的个数(C语言)
原题:力扣485 难度:easy题目:给定一个二进制数组nums, 计算其中最大连续1的个数。示例 1:输入:nums = [1,1,0,1,1,1]输出:3解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.示例 2:输入:nums = [1,0,1,1,0,1]输出:2分析:这里我们不难想到可以遍历一次数组,用一个变量(count)记录目前遍历连续1的个数,但是数组中可能还有0,那么可能最长连续的1的子数组在后面,于是我们在用一个
2023-04-24 18:20:32
310
原创 数组序号转换(C语言)
这里我们需要找到排序后的数组元素的值作为键,此时数组的下标作为值,然后再放入哈希结构体中,用HashItem*类型指针去初始化键和值,这里需要进一步思考,key是唯一的,如果数组有一模一样的元素的话,我们就让它不参与键值对的生成和赋值,因为本来就一样赋值一个即可。后面就很简单了,我们找到原始数组的值再去哈希结构体中找到对应的键值对,然后把每一个数组对应的下标就能放进ans数组中返回了,注意返回前需要删除哈希表和释放必要的数据结构。40 是最大的元素。,请你将数组中的每个元素替换为它们排序后的序号。
2023-04-19 19:02:19
605
原创 两个数对之间的最大乘积差(C语言)
这里简单介绍一下基数排序,说白了就是把每一个数以个位排序,然后十位,百位。等等进行排序即可,时间复杂度是O(n),不过更一般的写法用到二维数组时间复杂度会变高。力扣:1913. 两个数对之间的最大乘积差。返回以这种方式取得的乘积差中的。
2023-04-18 19:20:59
148
1
原创 三角形的最大周长(C语言)
这里分析一下:能组成三角形的话肯定必须要满足任意两边之和大于第三边的,这时候我们也可以想到这个进一步就是两短边(相对于三边中较短的)之和大于第三边长度,那么这就是本题的贪心思想了,这时候可以进行排序比如升序,那么可以找到连续的三个数,如果。两短边之和小于第三边,那么比这两短边还小的数就更不可能组成三角形了。如果不能形成任何面积不为零的三角形,返回。给定由一些正数(代表长度)组成的数组。原题:力扣976 难度:easy。由其中三个长度组成的、
2023-04-18 18:56:15
218
1
原创 python最大公约数和最小公倍数
题目:输入两个正整数num1和num2(不超过1000),求它们的最大公约数并输出。个人理解:首先看到这个的时候我的第一反应是想想小学咋写这个的????,然后就有一个方法说是辗转相除法:辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法。然后就好办了,先找到两个数,用较大的除以较小的得出余数1,再用较小的除以上面的余数再得到这个余数2,用余数1再除以余数2得余数3然后依次类推直到没有余数。那么思路清楚了就容易写了。下面展示一下代码。def hcf(a,b): x,y=max(
2021-11-15 16:16:56
1561
原创 Python函数定义和调用小试身手
题目:编写一个函数paint(n),根据输入参数n(行数)不同,输出下面图形(n=4),并测试。 * *** ***** *******个人一些理解:这东西在我学C,C++,数据结构的时候都能遇到,老熟人了,这次用python来实现了,这个没啥太多难点主要是注意这玩意居中,也就是要用到一个format操作方法{0:^100},这里用100主要是保险起见,100个绝对够用的了。下面就是个人写的一些代码。代码:def P(n): for ...
2021-11-11 21:38:56
1264
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人