0
私はいくつかの反復要素の配列を持っています、そして、これは配列の最後に最も近いものです。私はいくつかの反復要素の配列を持っています、私は配列の最後に最も近い反復要素のインデックスを見つけたいと思います
#include<iostream>
uisng namespace std;
int main()
{
int arr[15]={1,2,3,4,5,6,7,8,8,8,9,10,11,12,13}; // 8 is repeating 3 times
// lets find the index of element 8 which is closest from the end
int index;
for(int i=0;i<15;i++)
{
if(arr[i]==8)
{
index=i;break;
}
}
cout<<index;
return 0;
}
これは簡単でしたが、配列が非常に大きい場合は、配列のサイズが10^6だったとしたら、時間がかかります。私はバイナリ検索を使うことを経済的な方法で伝えました!反復要素が与えられていることを考慮して、最後に最も近い反復要素のインデックスを見つける複数の要素がある場合、バイナリ検索を使用するにはどうすればよいですか?
バイナリ検索を作成しましたか?どのように左と再帰の権利を再帰するかを決める方法について考えてみましょう。 – Barry
繰り返し要素が連続していると仮定していますか?あなたが言及していない他の制約はありますか? – rici
はソートされた配列ですか? 「配列の終わりに最も近い繰り返し要素のインデックスを見つける」と言ったとき - 複数の繰り返し要素がある場合は、配列の最後に来るものを見つけなければならないのでしょうか? – arunk2