0
A
答えて
11
配列がソートされていない場合は、あなたが求めていることをする方法がありません。 にあなたは少なくとも必要最大値を見つけるには
はO(nはを)取る範囲ですべての要素を点検します。
データの前処理を許可すると簡単です。あなたは答えを使ってn ルックアップテーブルを構築することができます。次に、一定の時間内に任意の範囲の最大値を見つけることができます。
4
これは不可能です。すべての要素を訪問する必要があります。
あなたの配列が先験的にソートされている場合は、O(1)操作です。
1
もここを参照してください: What is the best way to get the minimum or maximum value from an Array of numbers?
他の人が指摘したように、それは不可能だ
0
@Daniel Talamas私が正しくあなたを理解している場合、あなたはこの欲しかっ:あなたがすることはできません
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int maxlement(int range1,int range2) {
std::vector<int> v{ 1, 5, 2, 3, 2, 10 };
std::vector<int>::iterator result;
result = std::max_element(v.begin()+range1, v.begin()+range2+1);
int dist = std::distance(v.begin(), result);
return v[dist];
}
int main() {
int range1,range2;
cout<<"From ";
cin>>range1;
cout<<"To ";
cin>>range2;
cout<<"Max Element Is "<<maxlement(range1,range2);
return 0;
}
+1
線形ではなく対数でのみ、時間。 –
関連する問題
- 1. O(n log n)時間内に特別な点kを見つけるアルゴリズム
- 2. パンダは時間のローリングウィンドウで最大値を見つける
- 3. Pythonリストのインデックスが範囲外です - ローカル最大値を見つける
- 4. 時間範囲でオーバーラップを見つける
- 5. データベーステーブルの範囲内の値を見つける
- 6. 数値の範囲内のギャップを見つける
- 7. 範囲内の最高12個の連続値を見つける
- 8. pythonで制限時間内に最大のフィボナッチ数を見つける
- 9. 時間範囲を他の時間範囲で分割する
- 10. n -aryツリー内で最高値を見つける
- 11. 範囲内の合計でサブセットを見つける
- 12. 配列の範囲を見つける
- 13. ベクトル内の複数の最大値のインデックスを見つける
- 14. 機能mt_rand値の最大範囲は?
- 15. datarow []内の列の最大値を見つける方法?
- 16. 別の範囲内の地理的地点を見つける -
- 17. プロローグ:クエリのいくつかの結果間の最大値を見つける
- 18. 値で範囲を見つけるExcel-VBA
- 19. 範囲内の異なる値を見つけるためにVBAに関数などがありますか?
- 20. PHP - 範囲内に見つからないデータを見つけよう
- 21. Javascriptが最大値を見つける
- 22. sql - 最大値を見つける
- 23. 金属テクスチャ内の最小値と最大値を見つける
- 24. 配列から最小値と最大値を見つける
- 25. Pythonで最小値と最大値を見つける
- 26. CUBLASで最大値と最小値を見つける
- 27. 範囲内で最も低い値
- 28. 範囲バリデータの最小値と最大値は?
- 29. 2つのループで実行時間O(n^3 log n)で実行
- 30. PHPをPythonに翻訳する:識別子ごとに最小時間と最大時間を見つける
を。並べ替えられていないシーケンスで最大値を見つけるには、各値を少なくとも1回は調べなければなりません。これはアルゴリズムO(n)を作る。 – sbi
@sbi:配列を前処理して、検索ツリー/テーブル/を構築しないと、サブレンジを検索するよりもすばやく最大のサブレンジを得ることができます。おそらく、それは質問が何を求めているかですが、それはちょっと狭いです。 –
@Mike:それは本当ですが、私はそのような野獣を「並べ替えられていない配列」と呼んでいません。私はこの抜け穴を故意に残しました、あなたは知っていますか? ':)' – sbi