zoukankan      html  css  js  c++  java
  • Leetcode 0623

    LeetCode 59 螺旋打印矩阵

    class Solution:
        def generateMatrix(self, n: int) -> List[List[int]]:
            i = 0
            j= 0 
            k = 0
            t =1
            d1 = 0
            d2= 1
            tb = [i for i in range(n)]
            #print(tb)
            a = [[0 for i in range(n)] for j in range(n)] 
            def getdir(d1,d2):
                if [d1,d2]==[1,0]:
                    
                    return 0,-1
                elif [d1,d2] ==[0,1]:
                    return 1,0
    
                elif [d1,d2] ==[-1,0]:
                    return 0,1
                else:
                    return -1,0
            while k<n**2:
                
                a[i][j] = t
                t+=1
                if d1+i not in tb or d2+j not in tb or a[i+d1][j+d2]!=0:
                    d1,d2= getdir(d1,d2)
                k+=1
                #print(a)
                i = i+d1
                j+=d2
               # print(d1,d2,i,j)
                
            return a 
    

      

    leecode 56合并区间

    特殊情况 输入长度为0的list

    class Solution:
        def merge(self, intervals: List[List[int]]) -> List[List[int]]:
    
            new=[]
            intervals.sort()
            if len(intervals)==0:
                return new
            c =intervals[0]
            for i in range(1,len(intervals)):
                if intervals[i][0]>=c[0] and intervals[i][0]<=c[1]:
                    c[1] = max(c[1],intervals[i][1])
                else:
                    new.append(c)
                    c = intervals[i]
            new.append(c)
            return new
    

      

    Leetcode加油站:

    class Solution:
        def canCompleteCircuit(self, gas: List[int], cost: List[int]) -> int:
            remain = [gas[i]-cost[i] for i in range(len(gas))]
            
    
            for i in range(len(remain)):
                if remain[i]<0:
                    continue
                sum1 =0
                t= i
                k=0
                while k<len(remain):
                    sum1 = sum1+remain[t]
    
                    t = t+1
                    if t>=len(remain):
                        t=0
                    k+=1
                    if sum1<0:
                        break
    
                if sum1>=0 and k==len(remain):
                     return i
            return -1
    

      

  • 相关阅读:
    最长上升子序列(矩形嵌套)
    中国剩余定理模板poj1006
    POJ 2891 扩展欧几里德
    2015多校联赛第三场(部分题解)
    树链剖分
    深度理解链式前向星
    POJ 1228 Grandpa's Estate(凸包)
    旋转卡壳(一)
    最小圆覆盖 hdu 3007
    半平面求交 模板
  • 原文地址:https://www.cnblogs.com/SuckChen/p/13184025.html
Copyright © 2011-2022 走看看