985研一学习日记 -2024.11.19

一个人内耗,说明他活在过去;一个人焦虑,说明他活在未来。只有当一个人平静时,他才活在现在。

日常

1、起床6:05

2、健身1.5h

3、LeetCode刷了1题

  1. 目标和
    1. 给一个非负整数数组,判断每个元素取+或者取-相加之和为target的组合个数
    2. 可以使用暴力解法:回溯+递归,但时间复杂度是指数的,会超出时间限制
    3. 使用动态规划,先转换为01背包问题每个元素要么放入背包要么不放入背包,判断背包容量为j时的最大价值
    4. 此时可将原问题转换为找出两个数组一个全为正,一个全为负,使得和为target,且正-负=总和,此时就可以转换为01背包问题,即判断某个元素是否放入,且背包容量应该根据关系推出,而且是判断装满背包的个数
    5. 定义dp数组并确定下标含义:dp[i][j]: 前i个元素中满足和为j的组合个数,一定注意此时不再是背包最大价值,而是满足和为j的组合个数,即装满背包的个数
    6. 确定递推公式:dp[i][j] = dp[i-1][j] + dp[i-nums[i]][j-nums[i]],即第i个元素不放入时和为j的组合个数 + 第i个元素放入时和为j-nums[i]的组合个数
    7. 初始化数组0个元素放入背包为0的个数是1个!!!要注意可能存在元素为0的情况,故对第一列初始化时,一定判断所有元素为0的情况
    8. 确认遍历顺序:只依赖左上角元素,故只需要从左向右从上向下遍历即可
    9. 使用一维数组实现:只需要将递推公式转换为一维数组形式不再依赖上一行而是在自身基础上更新,然后必须从后向前遍历

4、复盘22:30

不复盘等于白学!!!


学习和感想

1. DevOps

  1. DevOps是什么
    1. DevOps是一系列做法和工具,可以使流程实现自动化,将开发的代码自动化上云,实现持续集成CI和持续交付CD ![[attachments/Pasted image 20241119195013.png]]

    2. Jenkins是开源CI&CD(持续集成和持续交付)软件领导者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值