找工作-刷题

[6-10]leetcode 461. 汉明距离 leetcod

2019-05-25  本文已影响0人  sagfugetabf

461. 汉明距离

时间:2019年5月25日10:15:16
难度:简单
编号:6
进度:6/5 20/52
语言:python3


思路:先将两个数亦或,然后求得到的数字中有多少个1
代码:

class Solution:
    def hammingDistance(self, x: int, y: int) -> int:
        return bin(x^y).count('1')

执行用时 : 52 ms, 在Hamming Distance的Python3提交中击败了84.71% 的用户
内存消耗 : 13.2 MB, 在Hamming Distance的Python3提交中击败了57.90% 的用户

226. 翻转二叉树

时间:2019年5月25日16:27:13
难度:简单
编号:7
进度:7/5 20/52
语言:python3


思路:直接利用递归,可以利用python的小trick节约一行代码

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def invertTree(self, root: TreeNode) -> TreeNode:
        if root == None:
            return 
        root.left,root.right = self.invertTree(root.right), self.invertTree(root.left)
        return root

执行用时 : 52 ms, 在Invert Binary Tree的Python3提交中击败了89.89% 的用户
内存消耗 : 12.7 MB, 在Invert Binary Tree的Python3提交中击败了99.58% 的用户

617. 合并二叉树

时间:2019年5月25日16:53:08
难度:简单
编号:8
进度:8/5 20/52
语言:python3


思路:最简单的递归

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def mergeTrees(self, t1: TreeNode, t2: TreeNode) -> TreeNode:
        if t1 == None and t2 == None:
            return
        root = TreeNode(0)
        if t1 == None:
            return t2
        elif t2 == None:
            return  t1
        else:
            root.val = t1.val  + t2.val
            
            root.left = self.mergeTrees(t1.left,t2.left)        
            root.right = self.mergeTrees(t1.right,t2.right)
        return root

104. 二叉树的最大深度

时间:2019年5月25日17:07:49
难度:简单
编号:9
进度:9/5 20/52
语言:python3
类型:二叉树


思路:二叉树递归

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def maxDepth(self, root: TreeNode) -> int:
        if root == None:
            return 0
        if root.left ==None and root.right == None:
            return 1
        return max(0,self.maxDepth(root.left)+1,self.maxDepth(root.right)+1)
        

执行用时 : 72 ms, 在Maximum Depth of Binary Tree的Python3提交中击败了56.32% 的用户
内存消耗 : 14.9 MB, 在Maximum Depth of Binary Tree的Python3提交中击败了86.22% 的用户

942. 增减字符串匹配

时间:2019年05月27日16:18:37
难度:简单
编号:10
进度:1/5 21/52
语言:python3
类型:字符串


思路:双指针

class Solution:
    def diStringMatch(self, S: str) -> List[int]:
        start = 0
        end = len(S)
        ans = []
        for each in S:
            if each == 'I':
                ans.append(start)
                start +=1
            else:
                ans.append(end)
                end -=1
        ans.append(end)
        return ans

执行用时 : 112 ms, 在DI String Match的Python3提交中击败了80.57% 的用户
内存消耗 : 14.3 MB, 在DI String Match的Python3提交中击败了21.85% 的用户

上一篇下一篇

猜你喜欢

热点阅读