C++递归查找字符串数组中的最小元素

标签 c++ recursion

<分区>

我需要使用递归找到数组中最小字符串的下标,如果数组没有要检查的元素,则返回 -1。 到目前为止,这是我想到的,但它不起作用。

int leastElement(string a[], int n)
{
    if(n == 1)
        return 0;



    if(a[0] > a[n])
        a[0] = a[n];

    return leastElement(a, n-1);
}

最佳答案

int leastElement(string a[], int n)
{
    if (n <= 0) {
        return -1;
    }
    if (n == 1) {
        return 0;
    }
    int k = 1 + leastElement(a + 1, n - 1);
    if (a[0] < a[k]) {
        return 0;
    } else {
        return k;
    }
}

关于C++递归查找字符串数组中的最小元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29998662/

相关文章:

android - 如何使用 MediaBufferGroup 类适配 android 4.x 和 5.0

c++ - 抛出一个通过引用传递的临时参数

java - 在容量为 M 的 K 个房间中分配 N 吨食物

python - 使用递归交换字符串中的两个字母

python - 如何在 Python 中使用递归查找素数

C - 循环遍历所有可能的小写字符串

c++ - 奇怪的链接器错误

c++ - 编码、数据类型和打包的重复字段

c++ - std::move 意外调用析构函数

c++ - 如何在 C++ 中递归查找具有 Unicode 名称的文件?