Pythonの二次元配列から最も大きい値を取得する

最長部分共通問題を解いているときに

気になったので調べてみた。

最長共通部分列(Common Longest Subsequence)の問題を解いている最中にこの記事を読んでいて、あれ?これだと最長の共通部分が何文字分あるのか返せてないな、でも二次元配列ってどう返すんだっけ?
となったので調査。

ちなみにmax(dp)max(max(dp))では返せませんでした。

結論としてはここが参考になった。
大人しく従ったら上手く返せたのでメモがてら記事を書いておく。

max(list(map(lambda  x:  max(x),  dp)))

これで返すか、

from  itertools  import  chain
list(chain(*a))
max(chain(*a))

こう返すかの二択っぽい。

ちなみにつまづいていた最長部分共通問題はこれで、ソースコード(メモ化とDPを試した)はここ

時間がある人はぜひ解いてみてください。

コメント

このブログの人気の投稿

Braveブラウザ(iPhone,iPad)にオフラインでもYouTubeの動画が視聴可能なPlaylist機能が追加されていたので使い方をまとめてみた。

自作のChrome Extensionをインポートした時に "Invalid value for 'content_scripts[0].matches[0]': Empty path."というエラーが出たので解決した

Braveブラウザの同期機能をiPhoneで設定した話。