用类名传递参数时一定要加括号

class Solution:
    """
    @param A: The array A.
    @return: The array of the squares.
    """
    def SquareArray(self, A):
        # write your code here # 这代码写的的不pythonic
        N = len(A)

        # 首先,我们找到负数和非负数的分界点j,代表最大的一个负数
        p = 0                           # 正数指针
        while p < N and A[p] < 0:
            p += 1

        n = p - 1

        ans = []
        while 0 <= n and p < N:
            if A[n]**2 < A[p]**2:       # 正数的平方比负数大
                ans.append(A[n]**2)     # 添加较小的平方数
                n -= 1
            else:
                ans.append(A[p]**2)
                p += 1

        # 如果还有剩余负数,继续添加
        while n >= 0:
            ans.append(A[n]**2)
            n -= 1

        # 如果还有剩余正数,继续添加
        while p < N:
            ans.append(A[p]**2)
            p += 1
        return ans
A = [-4,-1,0,3,10]
a = [-7,-3,2,3,11]
# Solution.SquareArray(A) 这样会报错,这样传递的是类的id,并不是类的实例
b = Solution()
print(Solution().SquareArray(a)) # [4, 9, 9, 49, 121]
print(b. SquareArray(A)) # 这里要把函数类传递进去
上一篇:Solution of CF1530B


下一篇:69. 数组中数值和下标相等的元素