首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

【递归】递归n个数的最大值

作者:每天都要记得刷题(●’◡’●) 时间:2022/04/04 本篇感悟:举一反三,由 n的阶乘联想到递归n个数的最大值,对递归有了更深的了解。...文章目录 ⭐题目(代码在文末) ⭐递归思想 ⭐前n个斐波那契数 ⭐具体代码(答案) ⭐题目(代码在文末) 使用递归 55 ,22, 155, 77, 99这5个数的最大值 ⭐递归思想 Q...A1:我们学过函数,知道了函数调用,函数调用就是一个函数调用其他函数,比如主函数调用个数之和。...1个数的最大值进行比较(假设我们已知)** 3.然后就是n-1个数的最大值,也就是重复了以上的步骤 4.知道我们到了递归出口,再归回去就可以了。...a[n - 1] : find_max(a, n - 1); } int main() { //递归n个数的最大值 int a[5] = { 55,22,155,77,99 }; int

1.2K20

第 K 个数的问题

给一堆乱序的数,如果它们从小到大排好,第 k 个是多少。假设排列的下标从 1 开始,而非 0 开始。 这个问题如此之简单而熟悉,可它却可以是很多现实问题的某一个子问题的抽象。...Java 快排用 Arrays.sort 就可以了,如果是堆排序需要用到 PriorityQueue。...对整体维护一个最小堆 heap,每次从这个堆取出一个元素的时候,要观察这个元素是从哪里来的,如果是从 nums[i] 来的,就再从 nums[i] 取一个当时的最小元素补充到这个 heap 。...sum<k,说明这个数在每台机器上 machine[i] 往后,直到结尾的这一段数; 如果 sum>k,说明这个数在每台机器上 machine[i] 往前,直到开头的这一段数。...这个方法改变了思考的角度,原本是从一堆数中去找第 k 个数,现在是从中拿出一个数来,去这堆数找它应该在的位置。 还蛮有趣的。

34720

个数组的最大k个数(java)

问题描述:个数组的最大k个数,如,{1,5,8,9,11,2,3}的最大三个数应该是,8,9,11 问题分析:     1.解法一:最直观的做法是将数组从大到小排序,然后选出其中最大的K个数,但是这样的解法...但是这都是会对前K个数进行排序,所以效率不高,当K很大的时候,以上两种方法效率都不是很高。    ...2.解法二:不对前K个数进行排序,回忆快排的算法,那个partition函数,就是随机选择数组的一个数,把比这个数大的数,放在数组的前面,把比这个数小的数放在数组的 后面,这时想如果找出的随机数,最终位置就是...K的话,那么直接返回就是最终结果,如果sa的长度要比K大的话,那么以sa为新的数组,从sa找出K个最大的数,这时候就把原始数据集减少到的sa,如果sa的长度比K小的话,加入sa中有m个元素,那么m个元素算作是...K中元素的一部分,再从sb中找到,k-m个最大的元素,组合起来就是最终的结果,那么这时把问题简化成从sb找k-m个最大的元素,所以总体来说这是一个递归的过程,虽然复杂大也是O(n*logn)但是,每一次数据量都会减少所以会更加的快

77620

C语言 | 奇偶数个数

例96:C语言编程奇偶数的个数。  解题思路:奇数是指指不能被2整除的整数;偶数是能够被2所整除的整数。... main()//主函数  {   int i,n,m; //定义整型变量    int odd_Number=0,even_Number=0; //同上且赋初值    printf("请输入要判断几个数...:");   scanf("%d",&n);//输入整数的个数    printf("输入这几个数:");   for(i=0;i<n;i++) //循环    {     scanf("%d",&m)...    }   }   printf("奇数:%d个\n偶数:%d个:\n",odd_Number,even_Number);   return 0;//函数返回值为0  } 编译运行结果: 请输入要判断几个数...:5 输入这几个数:1 3 4 6 8 奇数:2个 偶数:3个: -------------------------------- Process exited after 8.497 seconds

2.9K22

【说站】python输入三个数平均值

python输入三个数平均值 本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。...1、平均值思路 接收输入的字符串,以空格为分隔符,将分割的数据存储在列表(lst1),将lst1的数据存储在另一个空列表(lst),并在存储时将字符串转换成整形,从而利用函数获得lst的和平均值...2、实例 print("-----平均值,可输入任意多个数-------") lst = [] #定义一个空列表 str = raw_input("请输入数值,用空格隔开:") lst1 = str.split..." avg = 0 avg = sum(list)/(len(list)*1.0) #调用sum函数求和 return avg print("avg = %f"%average(lst)) 以上就是python...输入三个数平均值的方法,需要我们对字符串进行分割,并将数组放在列表,大家学会后也试着不同数字的平均值吧。

1.3K20
领券