この度、赤ちゃんが生まれました。 めでたい。 そんでもって、10月から半年ほど育休を取って、育児に専念することになりました。 会社・部署の方々など、様々な方のサポートがあってのことです。 とても感謝しています。 休み自体は9月のシルバーウィークから取っていて、すでに絶賛育児中です。 ただね…… この時点ですでに大変なんだが? 細かいポイントを含めれば色々あるけど、しんどかったポイントをあげるなら、こんな感じ。 1. 生活リズムが不規則になる 私の担当範囲は、起きている時間のミルク、おむつ替え、沐浴、暇な時にじっと赤ちゃんの様子を見つめるなど。(あれ、意外とやってないな……) 主に昼から夜、あとは深夜から朝方(1時〜7時)に起きている感じ。 深夜に起きる前と、朝の担当が終わったあとに、それぞれ3〜4時間程度寝ている。 元々深夜に作業するのが苦じゃないタイプなので、深夜も赤ちゃんが寝ている時などは、パソコンでAIと戯れたり、スマホでダラダラとこんな感じの記事を書いたりと好き勝手やっている。 が、最初の方は生活リズムを変えるのがしんどかった。 無理やり寝るためにサプリメントを飲んだり、とにかく横になったりと色々試したが、寝れない時はとにかく寝れない。これがしんどい。 結局、慣れるまではどうにもならなかった。 人間って生活リズムを変えるのが難しい生き物なんだな、と割り切ることにした。 一方、妻の側は、今のところだいたい3時間おきに授乳がある。 母乳だったり、ミルクだったり、その併用だったり。 これがシンプルながらに、妻への負担が半端ない。 妻は授乳のたびに起きているし、赤ちゃんの空腹具合によっては泣き声と共に叩き起こされたりと、不規則な睡眠を強いられている。 授乳の間隔が空くと胸が張るし、乳腺炎になることもあるそう。 発熱などが出ることもあるので、妻の体調も気になる。 うちは基本的に母乳をあげて、足りない分はミルクを作って補う感じで運用している。 育児を始める前は、12時間ずつ分担して、私のターンはミルク、妻のターンは母乳でいいんじゃない?とか考えていた。 が、現実はそんなに割り切れるようにはなっていなかった。 赤ちゃんの都合だけじゃなく、妻の体の事情もある。 あと、沐浴とかも...
ゼロから始めるLeetCode Day27「101. Symmetric Tree」
- Get link
- X
- Other Apps
概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。
どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。
早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。
と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。
ただ、ITエンジニアとして人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。
Python3で解いています。
Twitterやってます。
前回
ゼロから始めるLeetCode Day26「94. Binary Tree Inorder Traversal」
次回
ゼロから始めるLeetCode Day28「198. House Robber」
問題
101. Symmetric Tree
難易度はeasy。
Top 100 Liked Questionsからの抜粋です。
問題としては二分木が与えられるので左右対称であるかを確認してください、というお題です。
For example, this binary tree [1,2,2,3,4,4,3] is symmetric:
1
/ \
2 2
/ \ / \
3 4 4 3
But the following [1,2,2,null,3,null,3] is not:
1
/ \
2 2
\ \
3 3
解法
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def isSymmetric(self, root: TreeNode) -> bool:
if not root:
return True
return self.dfs(root,root)
def dfs(self,left,right):
if left and right:
return left.val == right.val and self.dfs(left.left,right.right) and self.dfs(left.right,right.left)
else:
return left == right
# Runtime: 32 ms, faster than 71.25% of Python3 online submissions for Symmetric Tree.
# Memory Usage: 13.9 MB, less than 5.17% of Python3 online submissions for Symmetric Tree.
深さ優先探索で解きました。
きちんと左右対象のシンメトリーかを判定しなければならない点に注意しましょう。
あんまり書くことないですね・・・
良さげな解答があれば追記します。
- Get link
- X
- Other Apps
Popular posts from this blog
Braveブラウザ(iPhone,iPad)にオフラインでもYouTubeの動画が視聴可能なPlaylist機能が追加されていたので使い方をまとめてみた。
アップデートしたら使えるようになっていた 公式 からリリースされている通り、 BraveのiPhoneとiPadアプリのユーザーは、 新機能「Playlist」 を、 v1.25版 から利用可能になりました。これはユーザーが動画・音声コンテンツを好きなプラットフォームから保存し、楽しめるようにする機能です。Brave Playlistを使うと、ユーザーは複数のプラットフォームから選んだコンテンツを1つのプレイリストに保存して、いつでも、どこでもアクセスできます。音楽、動画、ポッドキャストなどを、通勤や旅行、日常生活で楽しむのに最適な機能です。 オフライン でYouTubeの動画を手元にダウンロードし、どこでも視聴可能になる機能が今回のアップデートで追加されました。 いやいや、これ相当便利ですね。 Braveを使っている方なら、Braveを通してYouTubeを視聴すれば広告を見なくて済むということを知ってらっしゃるとは思うのですが、まさかオフラインでも視聴可能になるとは・・・ AdBlockなどを活用すれば他のブラウザでも広告をブロックすること自体はできたのですが、まさか無償でブラウザ側が実装してくれるとは! ただ、広告収入をメインにしているYouTube側から規制されそうな気もしますが・・・ どうなんでしょうか? ちなみにこの機能、よくみたら5日前の段階でリリースされていたようなのですが、チェックできていなかったので先ほどアップデートをしたときに驚きました。 使い方 直感的に使えるので、すぐに使い方は分かるようになるかと思います。 1. YouTubeを開く 2.保存したい動画を開く。この時、画面下部に「Brave Playlistに追加する」と表示されるのでタップ。 3.画面右下の「・・・」をタップし、表示されたPlaylistをタップ 4.ダウンロードが始まっているので、完了するまで待つ。 5.ダウンロードが完了次第いつでもどこでも楽しめるように! これで完了です。 例えば機内モード(左上の飛行機マークに注目してください)にしたとしても問題なく動画は再生されます。 これで広告無し、しかもオフラインでもYouTubeを楽しめるようになりました!
Braveブラウザの同期機能をiPhoneで設定した話。
Braveブラウザを使い始めて結構経った 設定 1 .同期ページを開く 2.QRコードの表示 3.iPhoneで読み取る Braveブラウザを使い始めて結構経った Google Domainsで独自ドメインを持っているBloggerをBrave Creatorsに登録した話。 この記事を書いた頃から僕はBraveしか使わなくなっちゃいましたね〜。 広告がないとネットサーフィンが捗りますし、Braveの直接クリエイターに貢献できるような仕組みが特に気に入っています。Blogger,ひいてはGoogle的にどうなんだって話もありそうですけど、ただのユーザなのでそんなのは気にせず便利なものは使います。 それで本題です。 タイトルのように今回同期機能を設定しました。 余計なことをしていたせいで少しハマったので設定ついでに誰かが困ったときに役に立つように設定方法を残しておこうかと思います。 ちなみにこちらの記事はPCの同期にiPhoneを追加するという設定方法についての解説です。iPhone→PCの同期方法などはまた別の話のようです。 設定 1 .同期ページを開く ブラウザのタブの右上にある上矢印のマークをクリックすると以下のような項目が表示されます。 こちらの同期という欄をクリックします。 すると以下のページが表示されます。 自動的に設定ページの中の同期欄が表示されるわけですね。 2.QRコードの表示 同期欄に同期済みのデバイスを管理という欄があるのでそちらをクリックします。 すると以下のようなページが表示されるのでそちらの中の新たなデバイスを追加、スマホ/タブレットという順にクリックしていくとQRコードが表示されます。 これでこのステップは完了です。 3.iPhoneで読み取る このQRコードをiPhoneで読み取っていく訳ですが、このQRコードはプリインストールされているQRコードで読み取っても正しく処理してくれません。 書いてある通り、iPhoneのBraveブラウザで読み取って上げる必要があります。 なのでひとまずiPhoneでBraveブラウザを開き、画面右下の**•••**という所をタップしてください。 すると上から二番目に歯車アイコンの設定が表示されますのでそちらをタップします。 初期表示で画面中部に表示さ...
【OSLog】How to log a Swift project
Overview I found an article on the net that summarized how to use OSLog, I wanted a working sample. I am new to logging, so I wasn’t sure how to interpret the usage of OSLog. So I summarized it in my own way. What is OSLog? It is a library for logging that is provided by Apple and can be used in Swift projects. The official documentation is here . Sample https://github.com/Kuehar/OSLogSample When the above code is run, eight buttons are lined up as shown below. import SwiftUI import OSLog struct ContentView: View { let logger = Logger(subsystem: Bundle.main.bundleIdentifier!, category: "ApplicationCode") var body: some View { VStack { Button(action: { logger.trace("Trace Log") }, label: { Text("Trace") }) Button(action: { logger.debug("Debug Log") }, label: { Text("Debug") ...
Comments
Post a Comment