1. 矩阵面积
实现一个矩阵类Rectangle,包含如下的一些成员变量与函数:
两个共有的成员变量 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(n2) 的排序算法。
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()
大体一致,不同在于两个地方:
sorted(L)
返回一个排序后的L,不改变原始的L;L.sort()
是对原始的L进行操作,调用后原始的L会改变,没有返回值。【所以a = a.sort()是错的啦!a = sorted(a)才对!
sorted()
适用于任何可迭代容器,list.sort()
仅支持list(本身就是list的一个方法)
基于以上两点,sorted
使用频率比list.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]