スレ立てるまでもない質問はここで 166匹目 (143レス)
スレ立てるまでもない質問はここで 166匹目 http://mevius.5ch.net/test/read.cgi/tech/1734043411/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
18: デフォルトの名無しさん [sage] 2024/12/16(月) 23:23:08.71 ID:pEIdxfnL >>11 重さ(w)があるのに価値(v)がないものを取り除いている Rustで書くとこんな感じ 軽い順で入力が入ってくる状況で scanで今まで来た価値(v)の最大値を求めていて filterでその自分より前の最大値より価値(v)が大きいものだけを取り出している fn sieve(sorted_input: impl IntoIterator<Item = (u32, u32)>) -> impl Iterator<Item = (u32, u32)> { sorted_input .into_iter() .scan(0, |v_max, (w, v)| { let pre_v_max = *v_max; *v_max = v.max(pre_v_max); Some((w, v, pre_v_max)) }) .filter_map(|(w, v, pre_v_max)| { (v > pre_v_max) .then_some((w, v)) }) } http://mevius.5ch.net/test/read.cgi/tech/1734043411/18
20: デフォルトの名無しさん [sage] 2024/12/17(火) 09:05:21.52 ID:ykqm5sso >>18 ありがとうございます。自力で実装できるといいのですがなかなか難しいです Rustわからなかったので入門しましたよ まだ分からないことが多いですが同じ動作をしているようなのは確認しました fn main(){ let vec1 = vec![(1,1),(2,3),(3,2),(4,5)]; let ans = sieve(vec1); for i in ans { println!("{:?}",i); } } http://mevius.5ch.net/test/read.cgi/tech/1734043411/20
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.010s