栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

2021-10-31每日打卡:每日打卡:腾讯精选50题

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-10-31每日打卡:每日打卡:腾讯精选50题

2021-10-31每日打卡:每日打卡:腾讯精选50题 写在前面

“这些事儿在熟练之后,也许就像喝口水一样平淡,但却能给初学者带来巨大的快乐,我一直觉得,能否始终保持如初学者般的热情、专注,决定了在做某件事时能走多远,能做多好。” 该系列文章由python编写,遵循LeetBook 列表/腾讯的刷题顺序,所有代码已通过。每日3道,随缘剖析,希望风雨无阻,作为勉励自己坚持刷题的记录。

54.螺旋矩阵

  • 移动边界法:注意while并不能检查到每个for循环,可能存在后面两个循环已经无需进行(上面两个循环导致的边界已经超过范围拉),所以还要加个if判断
class Solution:
    def spiralOrder(self, matrix: List[List[int]]) -> List[int]:
        # 上下左右         
        s,x,z,y = 0,len(matrix)-1, 0, len(matrix[0])-1
        res = []
        # 相等的情况也需要完成该遍遍历
        while s<=x and z<=y:
        	# 注意range的最后一个取不到
            for col in range(z,y+1):
                res.append(matrix[s][col])
            s+=1
            if s>x: break
            for row in range(s,x+1):
                res.append(matrix[row][y])
            y-=1
            if y 
673. 螺旋矩阵II 

  • 移动边界:
class Solution:
    def generateMatrix(self, n: int) -> List[List[int]]:
        # 上下左右         
        s,x,z,y = 0,n-1, 0, n-1
        # 注意初始化结果的方法
        res, num = [[None]*n for _ in range(s,x+1)], 1
        while s<=x and z<=y:
            for col in range(z,y+1):
                res[s][col]= num
                num+=1
            s+=1
            if s>x: break
            for row in range(s,x+1):
                res[row][y]=num
                num+=1
            y-=1
            if y 
88. 合并两个有序数组 

  • 第一想法是“合并+排序”,然后想到可以“双指针比较-插入”,而为了前面元素不被覆盖,采取倒序转移:
class Solution:
    def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:
        p1, p2, index = m-1, n-1, m+n-1
        while (p1>=0 and p2>=0):
            if nums1[p1]>nums2[p2]:
                nums1[index]=nums1[p1]
                p1-=1
            else: 
                nums1[index]=nums2[p2]
                p2-=1
            index-=1
        while p2>=0:
            nums1[index]= nums2[p2]
            index-=1
            p2-=1
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/360554.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号