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

        
相关推荐
Canmag 兴隆磁性1 小时前
充磁的时候,磁铁里面到底发生了什么
学习·永磁材料·充磁·退磁
海兰1 小时前
【Kafka学习4】六大核心 API
学习·kafka·linq
知识分享小能手2 小时前
概理论与数理统计学习教程,从入门到精通,随机变量的数字特征 — 知识点总结与详细推导(7)
学习·机器学习·概率论
却道天凉_好个秋2 小时前
计算机网络:CDN
学习·音视频·cdn
圆奋奋2 小时前
FreeRTOS学习(十)- 最核心的内容:优先级抢占式调度 + 上下文切换
学习·freertos
程序猿炎义2 小时前
【llm-algo-leetcode学习笔记】显存与性能认知底座
笔记·学习·leetcode
Vcaker2 小时前
Linux学习18-ansible部署zabbix,role部署apache
学习
for_ever_love__3 小时前
python基础语法学习: 类型注解
开发语言·python·学习
MartinYeung54 小时前
[论文学习]ChainWatch:面向MCP-Based AI智能体系统中多步攻击的杀伤链对齐序贯检测框架
人工智能·学习
fīɡЙtīиɡ ℡4 小时前
AI 应用评测体系
人工智能·学习