leetcode

LeetCode 解答 #53. Maximum Subarray プログラミング練習

問題: 難易度: easy 入力: int[] 目的: 入力されたArrayの中で和が最も大きなSubArrayを求めよ 出力: int求めるのはSubArrayなので、入力の中で連続な数字の和を計算していきます。 値が小さくなると言うことは、前の累計がマイナスだったと言うことなので…

LeetCode 解答 #51. N-Queens プログラミング練習

問題: 難易度: hard 入力: int n 目的: n Queensの条件を満たすすべての回答をListとして返せ 出力: List>Lineの面接試験問題でも出題されたと噂されてる有名な問題ですね。 nQueensの条件は以下の通りです: n*nの盤面があります。(入力のnです) n個のQu…

LeetCode 解答 #50. Pow(x, n) プログラミング練習

問題: 難易度: medium 入力: double , int 目的: 既存の関数なしで累乗の計算を実現せよ 出力: double入力はintではなくdoubleだ。 つまり小数点の部分も考えなければならない。 累乗計算は-2乗等も含むのできちんと分類しておこう。 注意すべき事: 入力が0…

LeetCode 解答 #49. Group Anagrams プログラミング練習

問題: 難易度: medium 入力: String[] strs 目的: 入力文字列群の内、同じ文字で構成されている文字列をグループ化せよ 出力: List>入力はString型のArrayです。 中には例えば"eat", "tea"等の文字列が入っています。 そのうちの同じ文字列で構成された単語…

LeetCode 解答 #48. Rotate Image プログラミング練習

問題: 難易度: medium 入力: int型Array 目的: 入力されたn*nのArrayを右に90度回転せよ 出力: なし入力はn*nの2次元行列です。 その行列を右側90度回転させる問題です。 アフィン変換等をするのではなく、 ただ単に内容の数値を回転させればいいのです。 …

LeetCode 解答 #47. Permutations II プログラミング練習

問題: 難易度: medium 入力: int型Array 目的: 入力されたArrayの数字の可能なすべての組み合わせを求めよ 出力: int型のリストのリスト前回の#46問目と殆ど同じ問題です。 どちらも可能な組み合わせをすべて探す問題です。 違いは今回の問題の入力が重複あ…

LeetCode 解答 #46. Permutations プログラミング練習

問題: 難易度: medium 入力: Array 目的: 入力されたArrayの数字の可能なすべての組み合わせを求めよ 出力: int型のリストのリスト入力Arrayのすべての可能な組み合わせを求める問題です。 すべての組み合わせを求めるのでどの道全体探索しなければなりませ…

LeetCode 解答 #44. Wildcard Matching プログラミング練習

問題: 難易度: hard 入力: String s と String p 目的: sがpのパターンと一致するかを判断せよ 出力: boolean正規表現的なものを判断する問題です。 *は任意の文字列を表し、?は任意の文字を表します。 なのでpが'*'であった場合はすべての文字列が該当す…

LeetCode 解答 #43. Multiply Strings プログラミング練習

問題: 難易度: medium 入力: String 目的: 入力された二つのstrを数字に変換し、掛け算の結果を求めよ 出力: StringStringとして入力された数字を掛け算して答えを求める問題です。 但しString.valueof等のライブラリを使う事は禁じられています。 入力を一…

LeetCode 解答 #41. First Missing Positive プログラミング練習

問題: 難易度: hard 入力: int 型array[] 目的: 入力数字を壁の高さとして、雨が降った時最大で何ユニット分の水が汲めるか 出力: int入力された数字はそれぞれが壁の高さを表しています。 壁の位置はindexと同等、1番目と2番目の数字の間に1ユニット空いて…

LeetCode 解答 #41. First Missing Positive プログラミング練習

問題: 難易度: hard 入力: int 型array[] 目的: 欠けた一番小さい正数を求めよ 出力: int入力の中に含まれていない一番小さい正数を探す問題です。 例えば入力が[3,4,-1,1]であった場合、 欠けた一番小さい正数は2です。 マイナス部分と0は無視してかまいま…

LeetCode 解答 #40. Combination Sum II プログラミング練習

問題: 難易度: medium 入力: int型array, (int) target 目的: 入力arrayの中から和がtargetになる組み合わせをすべて求めよ 出力: リストのリスト前回の♯39問目と殆ど同じです。 前回との違いは、入力リストの中に重複した数字が存在する事、 同じ数字は一…

LeetCode 解答 #39. Combination Sum プログラミング練習

問題: 難易度: medium 入力: int型array, (int) target 目的: 入力arrayの中から和がtargetになる組み合わせを 出力: リストのリスト例にあるように、[2,3,6,7]、target=7が入力の場合、 答えは [ [7], [2,2,3] ] になります。 入力arrayの中の数字を使い…

LeetCode 解答 #38. Count and Say プログラミング練習

問題: 難易度: easy 入力: int 目的: 入力された整数をある法則に従って出力せよ 出力: String法則: 例文にあるように、法則は以下の通りです: まず読み方: 1: one one 2: one two 11: two one 111: three one 1121: two one one two one one次に関数の入力…

LeetCode 解答 #37. Sudoku Solver プログラミング練習

問題:難易度: hard 入力: character型array 目的: 入力された数独パズルの解を探せ 出力: なし皆さんお馴染みの数独ゲームの問題です。 解らない人もいると思うのでルールとしては: 9*9の盤面をもらい、縦が1-9、横も1-9、更に9個のsub-box(3*3)もすべて1…

LeetCode 解答 #36. Valid Sudoku プログラミング練習

問題: 難易度: medium 入力: character型array 目的: 入力された数独パズルの盤面が有効か判断せよ 出力: boolean皆さんお馴染みの数独ゲームの問題です。 解らない人もいると思うのでルールとしては: 9*9の盤面をもらい、縦が1-9、横も1-9、更に9個のsub-b…

LeetCode 解答 #35. Search Insert Position プログラミング練習

問題: 難易度: easy 入力: int型array、(int)target 目的: ソートされた入力arrayの中で、targetを差し込む場所を求めよ。 出力: int入力がArray ->ターゲットを探せ的な問題はまずバイナリサーチを思い浮かべましょう。 ♯33、♯34と似た問題です。 入力はソ…

LeetCode 解答 #34. Search for a Range プログラミング練習

問題: 難易度: medium 入力: int型array、(int)target 目的: 入力されたarrayの中で、targetの値と一致するエレメントの始まりと終わりのindexを求めよ 出力: int型Array前の♯33問目と殆ど同じ内容です。 更に今回はRotateされていないので、昇順にソートさ…

LeetCode 解答 #33. Search in Rotated Sorted Array プログラミング練習

問題: 難易度: medium 入力: int型array、(int)target 目的: 入力されたarrayの中で、targetの値と一致するエレメントのindexを求めよ 出力: int入力のArrayはソートされているが、どこかでRotateされている。 例えば[1,2,3,4,5]がどこかでくねり、[3,4,5,1…

LeetCode 解答 #32. Longest Valid Parentheses プログラミング練習

問題: 難易度: hard 入力: 文字列s 目的: 入力の中で最長な有効な括弧群の長さを返せ 出力: int前に有効括弧群の判断をする問題がありましたが、今回はその延長問題です。 括弧群の有効については問題♯20問目を参考にしてください。 stlisacity.hatenablog.…

LeetCode 解答 #31. Next Permutation プログラミング練習

問題: 難易度: medium 入力: int型array 目的: 入力されたarrayの数字を操作し次に多きい数字になるように順番を組み直せ 出力: なし出力はなしですがちゃんと入力Arrayをテストで見ています。 少し解りにくい問題ですが、要するに 入力が[1,3,2]の場合、 …

LeetCode #30. Substring with Concatenation of All Words プログラミング練習

問題: 難易度: hard 入力: 文字列sと文字列のArray, words 目的: arrayのsubstringの中で、wordsのすべてエレメントの結合があるか判断し、その始まりのindexをリストに格納し返せ 出力: integer(index)のlist問題の記述だけ見ると少し分かりにくいかもし…

LeetCode #29. Divide Two Integers プログラミング練習

問題: 難易度: medium 入力: (int) devidend, (int) devidsor 目的: devidendをdevidsorで割った結果を返せ。 出力: int入力は二つの整数、除数と被除数、つまりは割る数字と割られる数字です。 /を使ってしまえば一発と言いたいところですが当然そんな簡単…

LeetCode 解答 #28. Implement strStr() プログラミング練習

問題: 難易度: easy 入力: 文字列haystackと文字列needle 目的: haystackの中でneedleと一致する文字列が存在する場合一致する最初のインデックスを返せ。存在しない場合は-1を返せ 出力: integer入力された文字列haystackの中にneedleの文字列がsubstring…

LeetCode 解答 #27. Remove Element プログラミング練習

問題: 難易度: easy 入力: integerのリストと整数val 目的: リストの中でvalと同じ値の数値を取り除き新しいリストの長さを返せ 出力: integer前回の♯26と殆ど同じな問題です。 関数では整数を返すようになっていますが、 裏側では下の様なコードを走らせ、…

LeetCode 解答 #26. Remove Duplicates from Sorted Array プログラミング練習

問題: 難易度: medium 入力: integerのリスト 目的: リストの中で重複する数字を取り除き、その長さを返せ 出力: integer入力されたリストが既にソートされているので 重複している数字はすべて隣接の位置にある事になります。 関数では整数を返すようにな…

LeetCode #25. Reverse Nodes in k-Group プログラミング練習

問題: 難易度: hard 入力: ListNode 目的: 隣接のn個のノードをすべてスワップして返せ 出力: ListNode前回の♯23問の延長問題です。 23問目は隣接二つのノードをスワップする問題でしたが、 今回の問題は隣接n個のノードをスワップしなければなりません。 …

LeetCode #24. Swap Nodes in Pairs プログラミング練習

問題: 難易度: medium 入力: ListNode 目的: 隣接の二つのノードをすべてスワップして返せ 出力: ListNodeLinkedListの問題が立て込んでますね。 やはりArrayとは違い、LinkedLIstはノード毎に繋がりをもっているので、 ただ隣接のノードの値を交換するので…

LeetCode #23. Merge k Sorted Lists プログラミング練習

問題: 難易度: hard 入力: ListNodeのリスト 目的: 入力されたLinkedLIstをマージせよ 出力: ListNode♯21問めに、二つのソートされたLinkedListをマージする問題がありましたが、 今回はそれの延長問題です。 21問目と同様、入力のリスト群はすべてソートさ…

LeetCode #22. Generate Parentheses プログラミング練習

問題: 難易度: medium 入力: 正数n 目的: n個の括弧で有効組み合わせをすべて求めよ 出力: Stringのリスト前回の♯21で括弧群の有効かどうかを判断しました。 今回は有効な組み合わせをすべて求める問題です。 21問目と違い括弧は”()”のみなので求めやすく…