トップページ
>
プログラム
>
2016年07月08日
>
cgcs4qw3
書き込み順位&時間帯一覧
8 位
/194 ID中
時間
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Total
書き込み数
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
3
0
0
0
4
使用した名前一覧
書き込んだスレッド一覧
デフォルトの名無しさん
860を訂正します
(…なんだか騒がしいけど気が付かなかったことにしとこう…)
ふらっと C#,C♯,C#(初心者用) Part121 [無断転載禁止]©2ch.net
書き込みレス一覧
ふらっと C#,C♯,C#(初心者用) Part121 [無断転載禁止]©2ch.net
860 :
デフォルトの名無しさん
[sage]:2016/07/08(金) 19:31:10.37 ID:cgcs4qw3
>>859
LINQを使った↓という方法もあるけど
http://qiita.com/kazuhirox/items/26f2632b0cef4a5fed8a
…これだと「基準にする配列は狭義単調増加」という特徴が生かせないので
素直に for ループを使って
1. 対象と配列要素との差の絶対値をとる
2. 差の絶対値がこれまでの最小ならインデックスと最小値を記憶
3. 配列要素の値が対象を越えてたらループ脱出
…で、いいんじゃないかな…
ふらっと C#,C♯,C#(初心者用) Part121 [無断転載禁止]©2ch.net
864 :
860を訂正します
[sage]:2016/07/08(金) 20:09:43.96 ID:cgcs4qw3
ごめんなさい。>>860 の手順はまるで良くなかった…
「狭義単調増加」なのだから、for で基準配列を最初から順に参照して
1. 配列要素の値が対象値を越えたら
2. その時の要素と前の要素について、それぞれ対象値との差をとる
3. 差の小さい方のインデックスを答えとしてループ脱出
…じゃないと、無駄な計算や比較が多すぎる…
ふらっと C#,C♯,C#(初心者用) Part121 [無断転載禁止]©2ch.net
873 :
(…なんだか騒がしいけど気が付かなかったことにしとこう…)
[sage]:2016/07/08(金) 20:31:42.16 ID:cgcs4qw3
>>861
配列が大きくて計算量が心配になるのなら
配列をインデックスで適当に区切って区切り要素の値と対象値を比較
↓
調べる配列の範囲を決める
とすると、なお良いかも
(LINQを使う場合でも)
ふらっと C#,C♯,C#(初心者用) Part121 [無断転載禁止]©2ch.net
880 :
デフォルトの名無しさん
[sage]:2016/07/08(金) 20:44:21.71 ID:cgcs4qw3
>>877-878
おっしゃるとおりです…
…何レスも使って何やってんだ俺…
>>859 ごめんね…
※このページは、
『2ちゃんねる』
の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合は
メール
をしてください。対応します。