FIRE Wannabeの備忘録

毎月積立。

2020-06-01から1ヶ月間の記事一覧

【LeetCode】【Explore】 Arrays 101

Arrays 101。これいいですね。ビギナー向けと書いてあって、DVDをDVDボックスに詰める作業を想定して考えてみましょうと自分向きなのがひしひしと伝わってくるw DVDは各家庭で家中に散らばって収納してあるのではなくてだいたい箱か本棚等一箇所にまとめて収…

【LeetCode】【Explore】Arrays 101

53日目。順列と文字列。 Recursion勉強したい→前提としてBinary TreeとStackをやっておくことおすすめ→Binary Treeやるぞ→Stackの知識必要→Stackやるぞという感じで来ていましたが、Stackを学習するにも大前提としてのArraysの知識も必要そうなことが書いて…

【LeetCode】【Explore】Binary Tree続き

52日目。バイナリーツリーの続き。 プリオーダー・トラバーサルの実装の箇所なんですが普通に難しい。 Exploreの所も基本的にはProblemsみたいなコードを書いてみて自分で作る仕組みですが、これは下手するとProblemsに出てくるやつよりも普通に難易度が高い…

【LeetCode】【Explore】binary tree

Problemsからは一旦距離を置いて、今回からはExploreの方で基本事項を学んでいきます。足腰の踏ん張りというか、何事においても基礎が一番大切ですよね。 再帰(Recursion)をやるぞー!と思ってページを開いてみたら再帰の前にまず最初にbinary treeとstack…

【LeetCode】No. 50: Pow(x, n)

50題目。xのn乗。 シンプルですね。xをn乗したものをリターンせよという。条件としてはxの数字は-100.0から100.0の浮動小数点数に絞られ、nは32ビットの範囲内の整数[-2**31, 2**31-1]とのこと。 n50 とりあえずきったない形ではあるがサクセス判定もらえま…

【LeetCode】No. 49: Group Anagrams

49題目。アナグラムのグループ分け。 文字列の順列を与えられるので、アナグラムになっているものをグループ分けしようというもの。例ではインプットとして["eat", "tea", "tan", "ate", "nat", "bat"]という文字列の順列が与えられており、これをこのアルゴ…

【LeetCode】No. 48: Rotate Image

48題目。イメージ回転。 n*nの2次元の数列が与えられるのでそれを90度時計回り(clockwise)に回転させよというもの。何もリターンせずにin-placeでデータだけ組み換えるやつ。 例: Input: [ Output: [ [1,2,3] [7,4,1] [4,5,6] -> [8,5,2] [7,8,9] [9,6,3] ]…

【LeetCode】No. 47: Permutations II

47題目。並べ替えその2。 今回は与えられる数字に重複がある場合の並べ替えを返すアルゴリズムです。昨日重複なしのものをやったばかりですが、どうすればいいかわかりません・・w 模範回答はないのでさっそくディスカッションコーナーのPythonの回答のとこ…

【LeetCode】No. 46: Permutation

46題目。並び替え。 今回はシンプルです。整数がいくつか渡されるのでそれの全部の並び替えパターンをリターンせよというもの。渡される数字に重複するものはなし。 これでやるべきことは・・なんでしょうwひとつ数字を固定したら残りをappendかなんかで追加…

【LeetCode】No. 45: Jump Game II

45題目。ジャンプゲームII。自分の記憶によればIをまだ見てませんが。 Given an array of non-negative integers, you are initially positioned at the first index of the array. Each element in the array represents your maximum jump length at that …

【LeetCode】No. 44: Wildcard Matching

44題目。ワイルドカードマッチング。正規表現系でしょうか。 文字列(s)とパターン(p)が与えられて、'?'と'*'のサポートありでワイルドカードマッチングの機能を作るアルゴリズム作成。'?'はひとつの文字に対応し、'*'は空白を含むいかなる文字列に対応す…

【LeetCode】No. 43: Multiply Strings

43題目。文字列掛け算。 負の数ではない数字が二つ(num1, num2)文字列の形で与えられ、それを掛け算したものを文字列の形でリターンせよというもの。 ・・・それだけ? no43 と思って瞬殺や!リアルに10秒で書いたった!とかやった後にようやく但書を発見。 …

【LeetCode】No. 42: Trapping Rain Water

42題目。雨水を捕まえる。・・?もうできる気があまりませんねw 数字のリストが与えられて、その数字の大きさがブロックの高さとなり、ブロックで囲まれているエリアにどれくらいの水が貯まるか測定するアルゴリズムでした。 例えばInputが[0, 1, 0, 2, 1, 0…

【LeetCode】No. 41: First Missing Positive

41題目。ファーストミッシングポジティブ。最初の欠如した正の数(ド直訳)。 ソートされていない数字のリストが与えられるので、その中で欠けている最小の正の整数をリターンせよというもの。タイトルにはintegerとはないけど整数指定です。また、計算複雑…

【LeetCode】No. 40: Combination Sum II

40題目。コンビネーションサムその2。 前回のコンビネーションサム無印とほぼ同じアルゴリズムです。いくつかの数字のリストであるcandidatesが与えられて、それらの数字を組み合わせてtargetの数字になるような回答リストを作成するというもの。基本ルール…

【LeetCode】No. 39: Combination Sum

39題目。コンビネーション・サム。 重複のない候補数字群"candidates"とひとつのターゲット番号"target"が与えられて、"candidates"の中から足してターゲットの数字になる組み合わせを探しましょうというもの。 注釈としてはcandidateの数は何度も使用可能と…

【LeetCode】No.38: Count and Say

38題目。数えてハイ。 おっ、ナベアツかと思ったら違いました。今回は求められているアルゴリズムがイマイチ、というかあんま理解できませんでした。もうそのままコピペしますが、前提として以下の設定で物事が進められています。 The count-and-say sequenc…

【LeetCode】No.37: Sudoku Solver

37題目。数独解きアルゴ。 前回のアルゴは数独が有効かどうか判定するのみでしたが、今回は実際に数独を解くアルゴを書こうというもの。9マスx9マスあり、行・列共にダブりなしの1-9の数字が入り、3マスx3マスのサブボックス内にもダブりなしの1-9が入るよう…

【LeetCode】No.36: Valid Sudoku

36題目。有効な数独。 行に1-9までの数字がダブりなく入っていて、列にも1-9の数字がダブりなく入る。そして3x3マスの9個あるサブボックス内にも1-9の数字がダブりなく入っているかどうかを確認するアルゴリズムです。真偽の判定なのでTrueかFalseかでリター…

【LeetCode】No.35: Search Insert Position

35題目。挿入ポジション探索。 ソート済みの順列とターゲット番号が所与で与えられ、その番号が見つかればその番号のインデックスを返し、もしなければその順列内であるべき位置のポジションのインデックスをリターンせよとのこと。順列内にダブりはないもの…

【LeetCode】No.34: Find First and Last Position of Element in Sorted Array

34題目。ソート済み順列の中で指定要素の始まりと終わりポジションを探せというもの。 昇順にソート済みのリスト"nums"及び指定要素"target"が所与で渡されるので、numsのリストの中でtargetの数字がはじまる位置と終わる位置をリターンせよという問題です。…

【LeetCode】No.33: Search in Rotated Sorted Array

33題目。ソート済みかつローテーションされた順列内探索。 ソート済みの順列numsが所与で、この順列はどこかわからないところを軸に並びがローテーションされているとのこと(例:0,1,2,4,5,6,7 -> 4,5,6,7,0,1,2)。その順列内で見つけたい番号がtargetとし…

【LeetCode】No.32: Longest Valid Parenthesis

32題目。最長の有効括弧の長さリターン。 字面のとおりで "(" か ")" しか含まない文字列を与えられ、括弧として有効な数の最長ものをリターンせよとのことです。 例ではInputが"*1"であれば有効な括弧は"()()"になりOutputは4になるようなアルゴリズムです。…

スペースXのSWEによるQ&A

つい数時間前までやっていたようです。スペースXのソフトウェアエンジニアによるQ&A@Reddit。先日の初の商用有人打ち上げ成功で今や時の人となっている集団だけにハロー効果か何かでひとつひとつの些細な言葉にまで重みを感じてしまいますね。 https://www.…

【LeetCode】No.31: Next Permutation

31題目。次の順列/置換。 整数のリストが与えられて、それをlexigographycallyにnextなもの並べ替える。つまり辞書的な意味で次の順番のものに組み合わせに並び替えるようなアルゴリズムです。またもin-placeで処理せよかつ、何もreturnせずただ単に並べ替え…

【LeetCode】No.30: Substring with concatenation of all words

30題目。全単語結合したサブストリングを探せ的な。 文字列”s”と全て同じ長さの単語のリスト”words"を与えられ、文字列s内で単語リスト内の単語を結合させたものの開始インデックス値を返せとな。 例えばsで"barfoothefoobarman"、wordsで["foo", "bar"]を与…

【LeetCode】No.29: Divide Two Integers

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

【LeetCode】No.28: Implement strStr()

28題目。strStr()関数の自力実装です。 strであるhaystackと、strであるneedleが所与で渡され、needleの文字列がhaystack中に含まれる場合にはhaystack中のneedleがはじまるインデックス番号をリターンせよというものです。尚、needleが含まれない場合には-1…

【LeetCode】No.27: Remove Element

27個目。Remove Element:要素除去です。 in-placeで所与の配列から所与の値(val)と一致するものを除去し、配列の長さをリターンせよとのこと。注意書きで配列の順序は変更可能とも。 例:Input: (nums = [0, 1, 2, 2, 2, 3, 0, 4, 2], val = 2) -> Output: 5…

【LeetCode】No.26: Remove Duplicates from Sorted Array

さて26個目。ソート済み配列からダブってる数字を削除して要素がいくつあるか(配列の長さ)返すものです。 今回のアルゴリズムの主な情報は以下の3点: ・ソート済みの配列が所与。 ・配列内で重複する数字を削除し、いち要素ひとつにし、配列の長さを返す…