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

        
相关推荐
2603_969694851 小时前
【JavaWeb学习记录】MyBatis核心知识点与实战笔记:从入门到动态SQL
笔记·sql·学习·mysql·mybatis·javaweb·学习方法
北京云帆互联科技7 小时前
云帆培训考试系统更新说明:v9.3.0
java·学习
sxlishaobin9 小时前
Maven Setting详解
java·学习·maven
li星野1 天前
相位补偿学习记录:把被颅骨“打乱“的声波重新对齐
学习
Z21-X1 天前
云原生运维学习笔记:ECShop全链路容器化部署与Docker底层资源隔离深度剖析
运维·笔记·学习·云原生
red_redemption1 天前
自由学习记录(230)
学习
晓梦林2 天前
BUUCTF-菜刀流量-MISC-学习笔记
笔记·学习
Godspeed Zhao2 天前
从零开始学AI25——无监督学习之层次聚类
学习·机器学习·聚类
David猪大卫2 天前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
HPtiger2 天前
C++ 入门笔记:从 C 到 C++ 的核心过渡(命名空间、输入输出、缺省参数、重载、引用、内联)
c语言·c++·学习