Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 查找元素的出现次数_Arrays_Search - Fatal编程技术网

Arrays 查找元素的出现次数

Arrays 查找元素的出现次数,arrays,search,Arrays,Search,给定一个数组,其中每个元素与其前一个元素相差+1/-1。在不使用线性搜索的情况下,查找给定输入元素的第一个出现位置,例如:-让数组=4,5,6,6,7,8,9,10,9,8,9,10,11。。。输入-10输出-8 10的第一次出现在第8位一种简单的方法是通过目标值和当前值之间的差值在数组中向前跳。因此,在您的示例中,目标是10。从第一个元素开始,查看10目标值和4当前值之间的差值为6。假设任意两个相邻值仅相差一个,则知道10的第一次出现必须在阵列中至少再出现6个点。所以向前跳,重复这个过程,直到

给定一个数组,其中每个元素与其前一个元素相差+1/-1。在不使用线性搜索的情况下,查找给定输入元素的第一个出现位置,例如:-让数组=4,5,6,6,7,8,9,10,9,8,9,10,11。。。输入-10输出-8 10的第一次出现在第8位

一种简单的方法是通过目标值和当前值之间的差值在数组中向前跳。因此,在您的示例中,目标是10。从第一个元素开始,查看10目标值和4当前值之间的差值为6。假设任意两个相邻值仅相差一个,则知道10的第一次出现必须在阵列中至少再出现6个点。所以向前跳,重复这个过程,直到找到第一个索引。您的代码可能如下所示:

int find_first_occurrence(int target, int array[])
{
    int index = 0;
    while (index <= array.count())
    {
        if (array[index] == target)
        {
             return index;
        }
        index += abs(array[index] - target);
    }
    // Returning -1 would indicate that the target is not in the array
    return -1;
 }

非常感谢@Aaron Reynolds如果它解决了你的问题,你应该接受它作为答案。