LeetCode1155. Number of Dice Rolls With Target Sum k面のサイコロをn個振った時、合計値がtargetになる組み合わせの数を求める問題。 全探索する場合、1~kのどれが出るかという試行がn回繰り返され、O(K^N)となり間に合わない。 ここで、サイコロの出目を1... 2022.03.16LeetCode
LeetCode貪欲法とDPで 1029. Two City Scheduling 問題はこちら。 2N人をA,Bの2つのグループ分け、均等に振り分けるために必要なコストを最小化する問題。 Aに振り分けるコスト、Bに振り分けるコストが与えられる。 貪欲法 Aに行きやすい人はAに行か... 2022.03.09LeetCode
LeetCode二分木の通りがけ順をMorris traversalで解く 二分木の値を通りがけ順に出力する問題。 再帰を使った深さ優先探索で解ける。 # Definition for a binary tree node. # class TreeNode: # def __... 2022.02.09 2022.02.10LeetCode
LeetCode784. Letter Case Permutation 英数字の文字列が与えられ、アルファベットを大文字小文字に変換した際の全パターンを列挙する問題。 数字は変換しないので、アルファベットかどうかで場合分けしながら効率的な全探索を考える。 再帰 文字列を先頭か... 2021.12.27LeetCode
LeetCodeO(N)で567. Permutation in String 2つの文字列s1とs2が与えられ、s1の並び替えがs2に含まれるかどうか(s1の順列がs2の部分文字列か)判定する問題。 最初に思いついた解法 s1, s2 の長さをn1, n2とする。 s2から長さn1... 2021.11.16LeetCode
LeetCode5通りの方法で189. Rotate Arrayを解く 長さnの配列をk個右に回転させる問題。 There are at least three different ways to solve this problem.と書いてあったので、色々試してみた。 全探索 ... 2021.11.04LeetCode
LeetCode最大部分列和をKadane’s algorithmで解く 与えられた配列のうち、連続した部分配列の和の最大値を求める問題を考える(最大部分配列問題、最大部分列和問題)。 愚直に解くと二重ループだが、O(n^2)となり遅い。 DPの一種であるKadane's algorithm... 2021.11.01LeetCode
LeetCode1302. Deepest Leaves Sum 簡単なグラフの問題。 幅優先探索と深さ優先探索の両方で解いてみた。 class Solution: def deepestLeavesSum(self, root: TreeNode) ->... 2021.05.30LeetCode