LeetCode刷题日记07【746,198,213】,这是一份面向Linux运维开发者的复习指南

本文介绍了一位技术专家分享的Linux运维学习资源,包括从零基础到进阶的全面教程,以及如何通过系统化学习避免知识碎片化,提升技术能力。作者提供了一份详细的资料包,涵盖面经、学习路径和实践项目,旨在帮助程序员高效成长。
摘要由CSDN通过智能技术生成

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文

因为递推公式是后面的元素根据前面的元素来递推【i可以由i-2或i-1得到】,所以正常从前往后遍历即可


5. 举例推导dp数组:

引用自代码随想录对应题的图辅助理解

代码

class Solution {
    public int minCostClimbingStairs(int[] cost) {
        // 1.dp数组定义:到达下标i的位置所需要最小花费【加1是因为根据数组定义所以还需要记录一个下标为楼顶最小花费】
        int[] dp = new int[cost.length + 1];
        // 3.初始化:根据递推公式因此只需初始化0和1索引
        dp[0] = 0;
        dp[1] = 0;
        // 4.遍历顺序【0和1位置已经初始化,从2开始】
        for (int i = 2; i <= cost.length; i++) {
            // 2.递推公式:dp数组可通过向上爬一个或两个台阶得到
            dp[i] = Math.min(dp[i-1] + cost[i-1], dp[i-2] + cost[i-2]);
        }
        // 返回dp数组的最后一个元素
        return dp[cost.length];
    }
}

198.打家劫舍

题目描述

198.打家劫舍

解题思路

线性数组相邻的房间不能偷

该房子是否能偷取决于前一个和前二个房屋是否偷的情况【动态选择性的结果】


1. dp数组定义

包含下标i之前【包含下标i当前房子】偷的最大的总和


2. 递推公式【哪些步能够推导得到dp[i]】

偷当前i:dp[i-2] + num[i]

不偷当前i:dp[i-1]

因此dp[i] = max(dp[i-2] + num[i], dp[i-1] )


3. 初始化

i可以由i-2或i-1得到,因此需要初始化dp[0]和dp[1]

dp[0] = num[0]

dp[1] = max(num[0], num[1])


4. 遍历顺序

因为递推公式是后面的元素根据前面的元素来递推【i可以由i-2或i-1得到】,所以正常从前往后遍历即可(for (i = 2; i < num.size(); i++))


5. 举例推导dp数组

引用自代码随想录对应题的图辅助理解

代码

记得先根据题意处理数组的特殊情况确保不会出现ArrayIndexOutOfBoundsException报错

class Solution {
    public int rob(int[] nums) {
        // 根据题意1 <= nums.length <= 100说明最短数组可能只有一个元素,处理特殊情况
        if (nums.length == 1) return nums[0];
        // 1.dp数组定义:包含下标i及之前偷的最大的总和
        int[] dp = new int[nums.length];

        // 3.初始化:根据递推公式只需要初始化索引0和1位置
        dp[0] = nums[0];
        dp[1] = Math.max(dp[0], nums[1]);
        // 4.遍历顺序:从前向后遍历,从第二个开始
        for (int i = 2; i < nums.length; i++) {
            // 2.递推公式【相邻不能偷】:偷当前或不偷当前
            dp[i] = Math.max(dp[i-2] + nums[i], dp[i-1]);
        }
        // 返回dp数组的最后一个元素
        return dp[nums.length - 1];
    }
}

213.打家劫舍II

题目描述

213. 打家劫舍 II

解题思路

把环形问题展开成线性问题,然后单独考虑首尾元素情况

相邻的房间不能偷,以及首尾相连即相邻不能偷


三种情况:

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
[外链图片转存中…(img-klhcNtoC-1713345867696)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 29
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值