lintCode真題実戦-入門問題セット/マトリクス面積/整数ソート

1932 ワード

1.マトリクス面積
行列クラスRectangleを実装し、次のメンバー変数と関数を含みます.
2つの共通のメンバー変数widthとheightは、それぞれ幅と高さを表します.マトリクスの幅と高さを設定するために2つのパラメータwidthとheightを受け入れる構造関数.メンバー関数getAreaは、この行列の面積を返します.サンプル
Python:
    rec = Rectangle(3, 4)
    rec.getArea()

回答:
class Rectangle:    #   ,             
    def __init__(self, width, height):      #                 ,    self  
        if width >= 0:
            self.width = width
        
        if height >= 0:    
            self.height = height
        
    def getArea(self):
        return self.width * self.height     # init    ,     

2.整数ソート
整数のセットを昇順にソートし、選択ソート、バブルソート、挿入ソート、または任意のO(n 2)のソートアルゴリズムを使用します.
class Solution:

    def sortIntegers(self, A):
        # write your code here
        print('hello')
        return A.sort()    #        return sorted(A)   

派生:list.sort()
>>> L = [5,2,3,1,4]
>>> L
[5, 2, 3, 1, 4]
>>> L.sort()
>>> L       #     ️ ! sort()  L   ,L   
[1, 2, 3, 4, 5]

アドレス未変更
In [73]: mm = [1,3,2]

In [74]: id(mm)
Out[74]: 4466905928

In [75]: mm.sort()

In [76]: mm
Out[76]: [1, 2, 3]

In [77]: id(mm)
Out[77]: 4466905928

sorted()
Pythonの内蔵関数で、使用方法はlist.sort()とほぼ一致し、2つの場所で異なる.sorted(L)は、元のLを変更することなく、並べ替えられたLを返す.L.sort()は元のLに対して操作を行い、呼び出すと元のLは変化し、戻り値はありません.[だからa=a.sort()は間違っている!a=sorted(a)が正しい!sorted()は任意の反復可能な容器に適用され、list.sort()はlistのみをサポートする(それ自体がlistの1つの方法である).
以上の2点に基づいて、sortedlist.sort()よりも使用頻度が高いため、Pythonにおけるより高度なソートテクニックはsorted()によって実証される.
>>> Num
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a = sorted(Num, reverse=True)
>>> a
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> Num
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]