0106leetcode刷题5道python

100

题目描述:
给定两个二叉树,编写一个函数来检验它们是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

示例1:
在这里插入图片描述
示例2:
在这里插入图片描述
示例3:
在这里插入图片描述
解答:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
        if not p and not q:
            return True
        if not p or not q:
            return False
        if p.val==q.val:
            return self.isSameTree(p.left,q.left)and self.isSameTree(p.right,q.right)
        else:
            return False

104

题目描述:
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。

示例:
在这里插入图片描述
解答:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def maxDepth(self, root: TreeNode) -> int:
        if root==None:
            return 0
        else:
            return max(self.maxDepth(root.left),self.maxDepth(root.right))+1

136

题目描述:
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

示例 1:
输入: [2,2,1]
输出: 1
示例 2:
输入: [4,1,2,1,2]
输出: 4

解答:

class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        #不需要额外空间的方法,就往位运算上想
        #异或:相同为0,不同为1。异或同一个数两次,原数不变
        a=0
        for num in nums:
            a=a^num
        return a

1672

题目描述:
给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i​​​​​​​​​​​​ 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。
客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。

示例:
在这里插入图片描述
解答:

class Solution:
    def maximumWealth(self, accounts: List[List[int]]) -> int:
        max=0
        for i in range(len(accounts)):
            temp=sum(accounts[i])
            if temp>max:
                max=temp
        return max

1689

题目描述:
如果一个十进制数字不含任何前导零,且每一位上的数字不是 0 就是 1 ,那么该数字就是一个 十-二进制数 。例如,101 和 1100 都是 十-二进制数,而 112 和 3001 不是。
给你一个表示十进制整数的字符串 n ,返回和为 n 的 十-二进制数 的最少数目。

示例:
在这里插入图片描述
解答:

class Solution:
    def minPartitions(self, n: str) -> int:
        return int(max(n))  #返回字符串中字符的最大值即可

猜你喜欢

转载自blog.csdn.net/yeqing1997/article/details/112254216