- ベストアンサー
second max
題名の通り、二番目や三番目の最大値を求めようとしているのですが どのように手をつけたらいいのか検討がつきません。 (maximumOfArreyElementsをうまく応用するくらいしか想像出来ません。) 三時間ほど考えましたが、解決策が見つからず、ここへ質問している次第です。 解決法があれば、ご教授お願いいたします。
- jun-nosuke
- お礼率61% (38/62)
- Java
- 回答数3
- ありがとう数3
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
一番簡単なソートです。 class SortAndShowMax { public static void main(String args[]){ int[] intArray = {1,2,3,4,5,6,7,8,9}; int tmp = 0; for(int i = 0; i < intArray.length; i++){ for(int j = i + 1; j < intArray.length; j++){ if(intArray[i] < intArray[j]){ tmp = intArray[i]; intArray[i] = intArray[j]; intArray[j] = tmp; } } } System.out.println("MaxOne:" + intArray[0]); System.out.println("MaxTwo:" + intArray[1]); System.out.println("MaxThree:" + intArray[2]); } }
その他の回答 (2)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
#1>ソートの方法も具体的に教えてください。 データの構造にもよりますけど、 java.util.Arrays.sort(T[], java.util.Comparator) とか java.util.Collections.sort(java.util.List,java.util.Comparator) とかが使えると思います。 キーが重複を許さないのであれば、 MapTree なども使えると思います。 そうした標準的な、データ構造を使わないのであれば、 一通り、全部のデータをなめれば、最大値が求まりますし、 2番目の最大値は、1番目の最大値を除いたデータで、最大値を求めれば良いと思います。(以下同じ)
お礼
お礼が遅れました、ご解答有難うございます。 >2番目の最大値は、1番目の最大値を除いたデータで、最大値を求めれば良いと思います。(以下同じ) 確かにこのように考えれば、納得がいきます。 一番目の最大値を除く、という所がミソですね。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
ソートしてしまうとか (選択法で三つ目までを求めるとか)
お礼
累計2回目のご回答有難うございます。 ソートして値を並び替えることも考えたのですが、いまいちソートの 方法がわからず、途方に暮れております。 出来ましたら、ソートの方法も具体的に教えてください。 よろしくお願いします。
関連するQ&A
- 「Windows の終了」から「スタンバイ」が消えてしまいました
初めまして。色々調べたのですが、解決策が見つからなかったので質問させてください。 質問内容は題名のとおりです・・・ 色々あって、パソコンを2回ほどOSを再インストールしているのですが、今回再インストしたら、Windowsの終了オプション画面で、今まであった「スタンバイ」項目が消えてしまいました。 私的には、度々使う場面が多かったので少しショックでたまりません。 http://homepage2.nifty.com/winfaq/w98/trouble.html#29 ↑こちらの上記の方法はやってみたのですが、項目3番の[アドバンスト パワー マネジメント サポート]というのがなく、削除するにも出来なくてこれ以降作業が進みません。 かといって下記の方をやっても、 ~~\Services \VxD \VPOWERD の「VxD」がなくこれも進みません。 皆さんはこれで解決しているようですが、これ以外に解決策というものはあるのでしょうか?? 宜しくお願い致します。
- 締切済み
- Windows XP
- 高校数学 勉強法について
Focus Goldの難易度***~****(応用~発展)の問題を解いている時にかなりの時間がかかってしまいます(2時間で5問程度)。 解法がある程度浮かぶのですが、試行錯誤しているうちに数十分かかってしまった、という感じです。 (殆ど手を動かしているので、ぼーっとしているわけではない)。 何か解決法はないでしょうか?
- ベストアンサー
- 数学・算数
- 現在iPod touch 2nd を使用しています。
現在iPod touch 2nd を使用しています。 曲順についての質問が多数ある中で、全く解決しないのでご教授お願いします。 まず、itunesの情報でトラック番号の確認をしたんですが、1番に来てほしい曲は1/25となっていました。 最後に来てほしい曲は25/25となっています。 しかし、同期すると全くの逆に並んでいるので、今度は1番に来てほしい曲を25/25としたところ、笑えるぐらいになんともなく変化なしです。 結局どうしていいのかさっぱりわかりません。 今現在アルバムの順序と全くの逆のまま何をしても変わらないです。 どうすればいいのでしょうか?
- ベストアンサー
- iPod・ウォークマン・音楽プレーヤー
- パソコンが最近重すぎる
題名どおり最近パソコンが異様に遅いです スリープが休止状態並みの起動の遅さ 何か解決法はないですかね?? 回答よろしくおねがいします
- ベストアンサー
- その他(インターネット接続・通信)
- グーグルの検索画面がおかしくなっているのですが・・
題名どうりです 画像のとおり、ちょっと前にかってにかわっていて、きにしてなかったのですが、そろそろイライラしてきました。 なにかウイルスがはいった覚えはないし、なにもさわってないし、クロームは最新ヴァージョンだし・・・ なにか解決策はありませんか? ご返答、よろしくおねがいします。
- ベストアンサー
- その他(SNS・掲示板・ブログ)
- パソコンの動作が遅すぎます!
自宅のパソコンがよくクラッシュしたり、 突然シャットダウンしたりしてしまいます。 原因及び解決法があれば教えてください。 それから、何と言っても動作が遅すぎるんです。。。 ブラウザを立ち上げるときなんて5分くらいかかる。。。 何故でしょう どなたか解決策をご教授ください!
- ベストアンサー
- その他([技術者向] コンピューター)
お礼
お礼が遅れて申し訳ございません。 ご解答、有難うございました。 記述していただいたソートをじっくりと拝見させていただきました。 >tmp = intArray[i]; intArray[i] = intArray[j]; intArray[j] = tmp; これがソートの仕組みのポイントですね、納得です。 参考になりました、有難うございました。