学习日记day41

Day41_1203

专注时间:3H36min

每日任务:计算机网络50分钟( 0 分钟),搜广推90分钟~上不封顶+手撕目录里的算法( 60+20 ),二刷hot100算法题2道(完成 2 道),刑法实务考试复习50分钟( 57 分钟看完了

学习内容: 如上

总结与心得: 明明睡得早起得晚,学到中午、晚上还是犯困而且确实睡着了。

《41.缺失的第一个正数》天才,自己想出来的。

python 复制代码
class Solution(object):
    def firstMissingPositive(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        #存进set里面 然后从1到len(nums)开始去查set里面有没有这个数字
        occ = set(nums)
        n = len(nums)
        # for 循环遍历列表,逐个添加数字到 set
            #for num in num_list:
            #   num_set.add(num)  # set.add() 方法:添加单个元素,重复元素会自动跳过
        #或者
            # 1. 定义包含数字的列表(可重复、无序)
            #num_list = [1, 2, 3, 2, 4, 5, 1, 6]

            # 2. 直接用 set() 转换(接收列表为可迭代对象)
            #num_set = set(num_list)
        for i in range(1,n+2):
            if i not in occ:
                return i
python 复制代码
class Solution(object):
    def firstMissingPositive(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        n = len(nums)
        for i in range(n):
            if nums[i]<=0:
                nums[i] = n+1
        for i in range(n):
            getnum = abs(nums[i])
            #x<=n的话 在下标x-1处(给这个地方的数做标记)打负号标记
            if getnum<=n:
                nums[getnum-1] = -abs(nums[getnum-1])
        for i in range(n):
            if nums[i]>0:
                return i+1

        #如果里面没有正数,就return n+1
        return n+1

《73.矩阵置零》

python 复制代码
class Solution(object):
    def setZeroes(self, matrix):
        """
        :type matrix: List[List[int]]
        :rtype: None Do not return anything, modify matrix in-place instead.
        """
        #非原地:o(n^2) 每个行 每个列 如果读到0就标记为True。 然后赋值
        r = len(matrix)
        c = len(matrix[0])
        row = [False]*r
        col = [False]*c
        for i in range(r):
            for j in range(c):
                if matrix[i][j]==0:
                    row[i]=True
                    col[j]=True
        for i in range(r):
            if row[i]==True:
                for j in range(c):
                    matrix[i][j] = 0
        for j in range(c):
            if col[j]==True:
                for i in range(r):
                    matrix[i][j] = 0
        
python 复制代码
class Solution(object):
    def setZeroes(self, matrix):
        """
        :type matrix: List[List[int]]
        :rtype: None Do not return anything, modify matrix in-place instead.
        """
        #非原地:o(n^2) 每个行 每个列 如果读到0就标记为True。 然后赋值
        #现在原地的话,需要在原地设置一个哈希数组,实现和非原地一样的效果。那么可以考虑第一行第一列
        r = len(matrix)
        c = len(matrix[0])
        rowis0 = False
        colis0 =False
        for i in range(c):
            if matrix[0][i]==0:
                rowis0 = True
        for j in range(r):
            if matrix[j][0]==0:
                colis0 = True

        for i in range(1,r):
            for j in range(1,c):
                if matrix[i][j]==0:
                    matrix[i][0]=0
                    matrix[0][j]=0
        
        for i in range(1,r):
            for j in range(1,c):
                if matrix[i][0]==0 or matrix[0][j]==0:
                    matrix[i][j]=0
        if rowis0 is True:
            for i in range(c):
                matrix[0][i]=0
        if colis0 is True:
            for j in range(r):
                matrix[j][0]=0
        
        

        
相关推荐
Fern_blog1 小时前
鸿蒙学习之路
学习
小智RE0-走在路上2 小时前
Python学习笔记(11) --数据可视化
笔记·python·学习
Asus.Blogs4 小时前
SSE + Resty + Goroutine + Channel 完整学习笔记
笔记·学习·golang
charlie1145141915 小时前
Git团队协作完全入门指南(上)
笔记·git·学习·教程·工程
迷茫的启明星5 小时前
Git命令学习
git·学习
全栈陈序员6 小时前
说说你对 Vue 的理解
前端·javascript·vue.js·学习·前端框架
im_AMBER7 小时前
Leetcode 85 【滑动窗口(不定长)】最多 K 个重复元素的最长子数组
c++·笔记·学习·算法·leetcode·哈希算法
nwsuaf_huasir7 小时前
overleaf在线编译latex怎办编译中文
学习
wdfk_prog7 小时前
[Linux]学习笔记系列 -- [fs]filesystems
linux·笔记·学习