Arrays 查找元素的出现次数
给定一个数组,其中每个元素与其前一个元素相差+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个点。所以向前跳,重复这个过程,直到找到第一个索引。您的代码可能如下所示: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个点。所以向前跳,重复这个过程,直到
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如果它解决了你的问题,你应该接受它作为答案。