LeetCodeを解いてみる配信 2020-06-16

LeetCodeを解く配信をした。
https://www.youtube.com/watch?v=KbYCbvuEps0www.youtube.com

今日はアコギを弾いてから始めた。アコギは曲を覚えてなかったので中途半端なところまで。

配列の合計の配列

Running Sum of 1d Array - LeetCode
動画は 5:05 から。
配列が与えられて、i番目の要素にはi番目までの合計をいれるというもの。
Acceptまではすぐだったんだけど、メモリ使用量が50%だったのでがんばった。
結局、結果用の配列を用意するのではなくて与えられた配列を書き換えることでメモリ節約していた。

配列の並べ替え

Shuffle the Array - LeetCode
動画は 17:10 から。
[x1, x2, ... , xn, y1, y2, ... , yn]の順番で与えられた配列を[x1, y1, x2, y2, ... , xn, yn]に並べ替えるもの。
とりあえず解いてみたら100%, 100%になったんだけど、与えられた配列の書き換えでいけるかなーとやってみようとして、やっぱだめって気づいて次にいった。

予備の飴をもらったら一番になれるかどうか

Kids With the Greatest Number of Candies - LeetCode
動画は 32:50 から。
子どもたちがいくつか飴をもっていて、それとは別に予備の飴があって、その予備の飴を全部もらったら一番多くもってることになる子どもはTrue, そうじゃなかったらFalseを返すというやつ。
コードは比較的すぐ書けたけど、やっぱメモリが60%になってて、ちょっとがんばろうということでArrayListを使っていたのを、配列を用意してArrays.asListした。
それで89%になったので、そこで終了。

初めて買ったノートパソコンを処分した

片付けてたらノートパソコンとして初めて買ったパソコンが出てきたのだけど、液晶はダメになってるし触るとボロボロになっていくしで、回収に出した。
本命は3枚あった液晶ディスプレイなのだけど。
f:id:nowokay:20200611193706j:plain
ちなみに、自立しないのでうしろのトレーで支えている。

もちろんAppleではなくて、AcerのTravelMate 514TXVというもの。 f:id:nowokay:20200611193608j:plain

この時期だと、ぐぐってもネット記事とか全くない。かろうじて出てくるのはこのスペック一覧。
https://www.cnet.com/products/acer-travelmate-514txv-14-1-celeron-win98-se-64-mb-ram-6-gb-hdd/

Celeron 466MHzでメモリ64MB、ハードディスク6GB、ディスプレイ1028x768なので、当時としては結構ほどほどなやつ。それなりに高かった記憶。
DVDもフロッピードライブも内蔵で便利だった。というか、たぶんそういう条件で絞っていくとこれしか残らなかったんだと思う。
f:id:nowokay:20200611194712j:plain

一緒にLANカードも出てきた。モデムはついていたけどLANはついていなくて、まだあまり家庭内でネットワークを組むというのはなかったんだと思われる。 f:id:nowokay:20200611201133j:plain

メモリ空きスロットがあるはずなんだけど、埋まってたので、増設していたかもしれない。そんな気もする。
f:id:nowokay:20200611194536j:plain

ハードディスクはカタログ通りなので、そのまま換装せずに使っていたのかな。ハードディスク入れ替えるくらいなら買い替えたほうがいいって感じだったんだろう。
f:id:nowokay:20200611201003j:plain

銅板に覆われてるのがCeleronで、右下にあるのがグラフィックチップのNeoMagicのMagicMedia 256AVかな。
ALiのM1543というのはAladdin Pro IIチップセットのNorth Bridge側で、探せばSouth BridgeのM1543があったはず。ちゃんとよく見ておけばよかった。
f:id:nowokay:20200611201459j:plain
しかしもうメモリコントローラはCPUに内蔵されてるし、ノースブリッジとかサウスブリッジとか言わないですね。

佐川さんにひきとられて、リネットジャパンに送られていきました。
https://www.renet.jp/

徹底図解 パソコンのしくみ 新版

徹底図解 パソコンのしくみ 新版

キーボードを洗った

家ではSK-6000というキーボードを20年近く使っているのだけど、その間まったく洗ったりせずにいたので結構汚れていた。
ちゃんと撮ってなかったので、キー配列確認用に撮ってたやつ。
f:id:nowokay:20200607063443j:plain

オフィスにキープーラーがあるので、こんど出社したときに持って帰ったらキーボード掃除しようと思っていたのだけど、つい出来心で右上のナゾのマウスキーを外してみて、案外簡単にはずれるなーとウォーターポンププライヤを使って全部外してしまったのであった。
で、洗剤いれたボウルに浸して、ひとつづつひたすら拭く。
f:id:nowokay:20200607063351j:plain

3時間くらいかけてきれいになった!
これはなんか満足感高い。
f:id:nowokay:20200607063305j:plain

でめでたしめでたし、ではなくて、同じのがもうひとつあるのであった。
これは火事にあった家に置いてあったやつなので、煤けている。
けど、また今度、気が向いたときにやなー。
f:id:nowokay:20200607065327j:plain

ARCHISS キートップ引き抜き工具 Ergo Grip Keycap Remover AS-KREGP01

ARCHISS キートップ引き抜き工具 Ergo Grip Keycap Remover AS-KREGP01

  • 発売日: 2017/01/05
  • メディア: Personal Computers

NetBeansがWindowsで拡大率100%のときになんも表示してくれない

ディスプレイを買い替えたとき、文字が小さいなぁと思ってWindowsの拡大率を125%にしていたのだけど、音を扱う系のアプリでうまく表示してくれないことが多くて100%に戻したらNetBeansがなにも表示してくれない。
ブログの画像読み込み中で空白になってるのかと勘違いしてしてしまうくらい、なんも表示してくれない。
f:id:nowokay:20200603230204p:plain

結局のところ、etc/netbeans.confにあるnetbeans_default_options-J-Dsun.java2d.noddraw=trueというところをfalseにすると表示されるようになった。
これはtrueだとDirect Drawを使わなくなるやつで、その場合のほうが問題が解決することが多いのだけど、今回は違った・・・
https://docs.oracle.com/javase/jp/7/technotes/guides/2d/flags.html#noddraw

あと、11.3では125%表示のときに横幅の計算は100%相当で行うためかファイル名の末尾が切れたりしている。
f:id:nowokay:20200603234401p:plain

ファイル名は拡張子が切れるくらいで気にしなければいいんだけど、テストがこけたときのActualがまったく見えないので結構こまっていた。
f:id:nowokay:20200603234629p:plain
but was...なんだよーってなる。これは11.4で解決されるのだけど、まだ先になりそう。
※ 6/13追記 NetBeans12.0が出て解決されていた

ちなみに音を扱う系のアプリというのはCubase 10で、Cubase 9のときはちゃんと表示してくれていたプラグインでもうまく表示できないことがある。
これはちゃんと表示されている。
f:id:nowokay:20200603232541p:plain

で、あれ、こんな感じで表示が~ってやろうとしたら、なんかうまく表示している・・・問題が解決してしまった。
けど100%表示のほうが画面が広いし文字が小さいのもあまり気にならなくなってるので、そのまま100%表示でいこう。

LeetCodeを解いてみる配信 2020-06-01

LeetCodeを解く配信を始めてます。
https://www.youtube.com/watch?v=KrhM06muekcwww.youtube.com

最初になんか楽器を練習して、人が集まったらLeetCodeを始めてる感じ。
あと、今日はVSTエフェクトをモリモリかけてみたのでそのテストでもあった。

残りより大きくなる要素を最小限に取り出す

最初はeasy
Minimum Subsequence in Non-Increasing Order - LeetCode
動画では9:15くらいから
配列からいくつかの要素をとってきて、その合計が残りの合計よりも大きくなる最小要素数の部分列を得るというものです。
ソートして総合計の半分以上になるまで要素をとっていく作戦です。 速さ97.22%で100%じゃなかったけど、あきらめ。

昇順・降順にならぶ3要素をすべて取り出す

次は前回やったmediumの問題が遅かったのでメモ化で速くしようという回 Count Number of Teams - LeetCode
動画では23:07くらいから。
24msで17.45%と結構遅かったので再帰をキャッシュして速くしようとした。
引数を範囲を考えつつひとつのlongにまとめてキーにする作戦。
それでも7msで60.21%とかだった。
discussionみてたら3重ループでやってるのがあったのでマネしてみたら16msで遅かった。
もっと見たら2重ループでやってるのがあって、たぶんこれが速いんだけど、配信中に理解できなそうだったのであきらめ。 Python short solution, >97.70%, O(n2) - LeetCode Discuss

二つの配列の片方を順番いれかえでもう片方と同じ並びにできるか

もうひとつeasy Make Two Arrays Equal by Reversing Sub-arrays - LeetCode
動画では45:50くらいから。
問題としては、配列の一部をとりだして逆順にするという操作を繰り返してもう片方の配列と同じ並びにできるかというものだけど、結局のところその操作で任意の並びにできることが示せれば、両者が同じ要素をもっているか判定するだけでいける。
で、n-1要素が任意に並べ替えれるなら、n番目にくるべきものをn-1番目にもってきてn番目の要素と入れ替えれば任意の並べ替えができることを利用して、2要素ならひっくり返すだけというのが示せるのですべての要素数で任意の並びにできることがわかる。
ということで、あとは数値が1000までなので1000要素の配列を用意して最初の配列で各要素の分をインクリメント、2番目の配列の各要素の分をデクリメントして、すべてが0なら同じ要素をもってるって判断。

厚生労働省の都道府県別陽性者のフォーマットががらっと変わってしまった

こんな感じで都道府県別の感染者数を表示できるようにしてるわけですが、厚生労働省のフォーマットが変わってしまったのでまとめておく。
nowokay.hatenablog.com

新しいものはこれ
f:id:nowokay:20200510034204p:plain https://www.mhlw.go.jp/content/10906000/000628667.pdf

いままでのはこれ
f:id:nowokay:20200510034235p:plain https://www.mhlw.go.jp/content/10906000/000627630.pdf

いままでも連番が入るとか数値にカンマが入るとかちょこちょこ変更は入ってたのだけど、今回はデータの意味も結構かわってしまった。
重症者やPCR検査数も入ったので、データとしては よりよくなったわけではあるけど。
東京のデータも都の発表値と一致するようになって、改めて都のデータをとりにいく必要がなくなったのもいいですね。

ということで困ったところ

  • 「不明」・・・いままでゼロとして扱ってたものが明確に不明になったのかな
  • 「確認中」の項目が・・・いままでは入院者に入ってたぽい
  • 徳島の死者も不明に・・・1名亡くなっていたはずだけどどうなった
  • 都道府県名にスペースが・・・取り除くの面倒
  • たまに全角スペースが・・・取り除くの面倒
  • 「県」「都」がなくなった・・・あわせるの面倒
  • 長野の最初の文字が「⾧」に・・・区別つかないけど別の文字

最後の「⻑」はこの文字だと教えてもらった
https://ja.wiktionary.org/wiki/%E2%BB%91
通常の「長」はこっち。
https://ja.wiktionary.org/wiki/%E2%BE%A7
「部首「⾧」の呼称として用いる場合の書体」って、なんでこんなのが入ったんだろう。🤔

追記
新型コロナウイルス感染者等情報把握・管理支援システム(仮称)」というのが5月から運用されて、そろそろ先行利用がはじまるみたいですね。
集計結果もそれにあわせて変わったということかな。
https://www.mhlw.go.jp/content/000626714.pdf
f:id:nowokay:20200510163808p:plain

Cubaseでピアノロールのノートの色を変える

DTMやるのにCubaseというソフト使っているのだけど、ピアノロールの音の色が非常に見づらい。
ので、変えてみる。

これがCubaseのピアノロール。

f:id:nowokay:20200429072326p:plain

そんな見づらくない気もする。
けどこれ、3小節目の真ん中のノートを選択中で、実は隣の4小節目の真ん中と同じ音が並んでいる。
これがちょっとぼくには全く見えなくて、作業するときはほぼ記憶と勘でやっている。

ただ、これではちょっとつらいので、色を変えることにする。
設定見てもよくわからなかったし、ぐぐってもすぐには出なかったのでブログを書いている。

これはイベントカラーで設定されている。

f:id:nowokay:20200429072954p:plain
どういうことかというと、これはノートにどういう基準で色をつけるかということで、デフォルトではベロシティで色が変わるようになっている。 「グリッド」に変えると赤になって見やすくなるのだけど、やはりベロシティによって色が変わるほうが便利。

イベントカラーで「ベロシティ」が選ばれている状態でドロップダウンから「設定」を選ぶ。

f:id:nowokay:20200429073357p:plain

そうすると表示色が選べる。

f:id:nowokay:20200429073507p:plain

ベロシティが高い場合に赤になるようになっているので、これを緑にしてみる。

f:id:nowokay:20200429073557p:plain

これで見やすくなった。気がする。

f:id:nowokay:20200429073852p:plain

気のせいか。