Pythonで等しい行の最大数の列を反転する
0と1で構成される行列があるとすると、行列内の任意の数の列を選択して、その列のすべてのセルを反転できます。セルを変換すると、そのセルの値が0から1または1から0に変更されます。いくつかのフリップの後、すべての値が等しい行の最大数を見つける必要があります。したがって、行列が-
のような場合0 | 0 | 0 |
0 | 0 | 1 |
1 | 1 | 0 |
出力は2になります。これは、最初の2列の値を変換した後、最後の2行の値が等しいためです。
これを解決するには、次の手順に従います-
- x:=行列、m:=行数、n:=列数、r:=0
- x
- の各要素iについて
- c:=0
- a:=iのすべての要素lのリスト、lXORiを挿入
- x
- の各要素jについて
- j=iまたはj=aの場合、cを1増やします
- r:=cとrの最大値
- return r
理解を深めるために、次の実装を見てみましょう-
例
class Solution(object): def maxEqualRowsAfterFlips(self, matrix): x = matrix m = len(matrix) n = len(matrix[0] ) r =0 for i in x: c=0 a=[l ^ 1 for l in i] for j in x: if j== i or j ==a: c+=1 r=max(c, r) return r ob = Solution() print(ob.maxEqualRowsAfterFlips([[0,0,0],[0,0,1],[1,1,0]]))
入力
[[0,0,0],[0,0,1],[1,1,0]]
出力
2
-
n番目のフィボナッチ数のPythonプログラム
この記事では、n番目のフィボナッチ数を計算します。 フィボナッチ数 以下に示す漸化式によって定義されます- Fn = Fn-1 + Fn-2 あり F 0 =0およびF1 =1。 まず、フィボナッチ数はほとんどありません 0,1,1,2,3,5,8,13,.................. フィボナッチ数を計算できます 再帰と動的計画法の方法を使用します。 それでは、Pythonスクリプトの形式での実装を見てみましょう アプローチ1:再帰方法 例 #recursive approach def Fibonacci(n): if n<0: &
-
n番目のカタラン数のPythonプログラム
この記事では、n番目のカタラン数の計算について学習します。 カタラン数 再帰式-によって定義される自然数のシーケンスです。 $$ C_ {0} =1 \:and \:C_ {n + 1} =\ displaystyle \ sum \ Limits_ {i =0} ^ n C_ {i} C_ {n-i} for \:n \ geq0; $$ n =0、1、2、3、…の最初のいくつかのカタラン数は 1、1、2、5、14、42、132、429、..............です。 .... カタラン数は、再帰と動的計画法の両方で取得できます。その実装を見てみましょう。 アプローチ1:再