zoukankan      html  css  js  c++  java
  • Leetcode 20190626

    剑指 Offer 55. 平衡二叉树

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution:
        def afterOrder(self,node):
            if node==None:
                return 0,0
            else:
                d1,res1 =self.afterOrder(node.left)
                d2,res2 = self.afterOrder(node.right)
                return max(d1+1,d2+1),max(abs(d2-d1),max(res1,res2))
    
    
        def isBalanced(self, root: TreeNode) -> bool:
    
            d,res = self.afterOrder(root)
          #  print(d,res)
            if res>1:
                return False
            else:
                return  True
    

      

    剑指 Offer 57 - II. 和为s的连续正数序列

    class Solution:
        def findContinuousSequence(self, target: int) -> List[List[int]]:
    
            res=[]
            for i in range(2,target):
                if i%2==1:
                    if target%i==0 and target//i - i//2>0:
                        start = target//i - i//2
                        end = start+ i
                       # print(res)
                        res.append([j for j in range(start,end)])
                if i%2==0:
                    #print(target%i,i//2,target//i - i//2)
                    if target%i==i//2 and target//i - i//2+1>0:
                      
                        start =  target//i - i//2+1
                        end = target//i + i//2+1
                        res.append([j for j in range(start,end)])
            res.sort()
    
            return res

    剑指 Offer 45. 把数组排成最小的数

    1、转成字符串,对字符串排序:

    2、两个字符串前后组成一个数,小的排在前

    class Solution:
        def minNumber(self, nums: List[int]) -> str:
            for i in range(len(nums)):
                nums[i] = str(nums[i])
            nums.sort()
            t1=''
           # print(nums)
            for i in range(len(nums)-1):
                for j in range(i+1,len(nums)):
                    if len(nums[i])<len(nums[j]):
                        if nums[i]+nums[j]>nums[j]+nums[i]:
                            t = nums[j]
                            nums[j] = nums[i]
                            nums[i] = t
             
            for i in range(len(nums)):
                t1 += nums[i]
            #print(nums)
            return t1
    

      

  • 相关阅读:
    基本数据类型转换
    java8新增的日期时间包
    算法之冒泡排序
    基本数据类型
    spring入门
    JiuDuOj——1020
    JiuDuOj——1051
    2015.11.26——Accelerated C++
    POJ2681——求字符串长度
    POJ1017——装箱问题
  • 原文地址:https://www.cnblogs.com/SuckChen/p/13196693.html
Copyright © 2011-2022 走看看