学习日记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
        
        

        
相关推荐
西岸行者4 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意4 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码4 天前
嵌入式学习路线
学习
毛小茛5 天前
计算机系统概论——校验码
学习
babe小鑫5 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms5 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下5 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。5 天前
2026.2.25监控学习
学习
im_AMBER5 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J5 天前
从“Hello World“ 开始 C++
c语言·c++·学习