东方博宜OJ 1683:递归法求最大值 ← 递归

【题目来源】
https://oj.czos.cn/p/1683

【题目描述】
请使用递归求 N 个数中的最大数及其位置。

【输入格式】
第一行一个整数 N,N≤1000。
第二行,N 个不重复的整数。

【输出格式】
最大值和其位置。

【输入样例】
10
2 4 1 6 3 10 9 7 8 5

【输出样例】
10 6

【数据范围】
N≤1000

【算法分析】
● 要善于变通,要学会从不同角度进行思考,来构建递归函数。

【算法代码】

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

const int maxn=1e3+5;
int a[maxn];

int f(int n) { //求前n个数的最大值的下标
    if(n==1) return 1;
    int x=f(n-1);
    if(a[x]>a[n]) return x;
    else return n;
}

int main() {
    int n;
    cin>>n;
    for(int i=1; i<=n; i++) {
        cin>>a[i];
    }

    cout<<a[f(n)]<<" "<<f(n);

    return 0;
}

/*
in:
10
2 4 1 6 3 10 9 7 8 5

out:
10 6
*/

【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/156211550
https://blog.csdn.net/hnjzsyjyj/article/details/156206151
https://blog.csdn.net/hnjzsyjyj/article/details/156206554
https://blog.csdn.net/hnjzsyjyj/article/details/156201255
https://blog.csdn.net/hnjzsyjyj/article/details/156192874
https://blog.csdn.net/hnjzsyjyj/article/details/156204715
https://blog.csdn.net/hnjzsyjyj/article/details/156185382
https://blog.csdn.net/hnjzsyjyj/article/details/156182882
https://www.bilibili.com/video/BV1TW4y1K7YK/

相关推荐
Irene19911 天前
(课堂笔记)SQL 高级查询技巧:行列转换、重复数据、递归查询、连续登录
递归·去重·连续登录
旖-旎5 天前
深搜(二叉树的所有路径)(6)
c++·算法·leetcode·深度优先·递归
khalil10207 天前
代码随想录算法训练营Day-31贪心算法 | 56. 合并区间、738. 单调递增的数字、968. 监控二叉树
数据结构·c++·算法·leetcode·贪心算法·二叉树·递归
旖-旎8 天前
深搜(二叉树剪枝)(3)
数据结构·c++·算法·力扣·剪枝·递归
旖-旎10 天前
递归(快速幂)(5)
c++·算法·力扣·递归
旖-旎12 天前
递归(汉诺塔问题)(1)
c++·学习·算法·leetcode·深度优先·递归
♛识尔如昼♛17 天前
C 基础(8) - 函数
c语言·指针·递归·函数
进击的荆棘19 天前
递归、搜索与回溯——递归
算法·leetcode·递归
王老师青少年编程23 天前
csp信奥赛c++中的递归和递推研究
c++·算法·递归·递推·csp·信奥赛
老鼠只爱大米1 个月前
LeetCode经典算法面试题 #70:爬楼梯(朴素递归、记忆化递归、动态规划等六种实现方案详解)
算法·leetcode·动态规划·递归·斐波那契·矩阵快速幂·爬楼梯