FIRE Wannabeの備忘録

毎月積立。

【LeetCode】No.29: Divide Two Integers

29題目。2つの整数分割。

 

二つの整数の"dividend"と"divisor"が与えられ、掛け算・割り算・mod関数を使わずに割りましょうというもの。条件としてdividenとdivisor共に32ビットの範囲内の数字になる、divisorは0になることはないとのこと。

 

今回は割り算しないでどうやって求めるんだ、特に小数点以下、という一丁目一番地(誤用)でつまづきました。truncateして小数点以下は求める必要なしというのを見てようやくああ・・と。

 

結論をいえば混乱状態になって諦めて回答を見ましたw途中までは良かったんですけどね。画像内にあるdividend==-1, divisor==1のパターンでもう書いてたコードがぐちゃぐちゃになって。32bitの話とかはもう頭が回ってませんでした。まあ回答みたらmax_int, min_int = 2147..., -2147...とベタ打ちで範囲を設けてそれ超えるかどうか確認してるだけでしたが。

f:id:ed_hen:20200605001206p:plain

no29

ちなみに回答例で一番最初に出てくるものをそのまま打ち込んでもサブミッションがサクセスにならないのは🌱生える。Time Limit Exceeded。なんかもう疲れちゃったなこれ。

 

それにしても・・"dividend"こんなんは株に手を出しているおじさんからしたら「配当金」としか訳読できないですね💸 あとは単純に商のことをquotientと言うのは知りませんでした。切り捨てるという意味のtruncateといい、英語的な意味でも学習が捗ってます。

 

Problems 達成度:29/1469 (1.97%)