【日记 2021-05-01】 leetcode练习&& Linux修改文件权限

题目:1335. 工作计划的最低难度
题目内容:你需要制定一份 d 天的工作计划表。工作之间存在依赖,要想执行第 i 项工作,你必须完成全部 j 项工作( 0 <= j < i)。
你每天 至少 需要完成一项任务。工作计划的总难度是这 d 天每一天的难度之和,而一天的工作难度是当天应该完成工作的最大难度。
给你一个整数数组 jobDifficulty 和一个整数 d,分别代表工作难度和需要计划的天数。第 i 项工作的难度是 jobDifficulty[i]。
返回整个工作计划的 最小难度 。如果无法制定工作计划,则返回 -1 。

理解:n项任务,d天完成,将n换分成d份,即将数组砍d刀。例如:jobDifficulty = [7,1,7,1,7,1], d = 3,砍成 [7 || 1 || 7,1,7,1]。
显然,应该用动态规划的思想来解决。
自定向上的思路:
设置一个二维数组dp,dp[i][j]表示第i天砍至位置i的最低工作难度。

class Solution {
    public int minDifficulty(int[] jobDifficulty, int d) {
        int n = jobDifficulty.length;
        if(n < d)
            return -1;
        
        int[][] dp = new int[d][n];
        dp[0][0] = jobDifficulty[0];
        for(int x=1; x<n; x++)
            dp[0][x] = Math.max(dp[0][x-1],jobDifficulty[x]);
        
        for(int i=1; i<d; i++){
            for(int j=i; j<n; j++){
                int curMax = jobDifficulty[j];
                 dp[i][j] = Integer.MAX_VALUE;
                for(int r=j; r>=i; r--){
                    curMax = Math.max(curMax,jobDifficulty[r]);
                    dp[i][j] = Math.min(dp[i][j],dp[i-1][r-1]+curMax);
                } 
            }
        }
        
        return dp[d-1][n-1];
    }
}

Linux修改文件权限命令:chmod

格式举例:chmode 777 /home/test.txt
权限解释:权限用3位二进制数表示,分别是rwx,表示读、写、执行3个权限。最高权限为rwx=111=7。
例子中,777有3位,最高位7是设置文件所有者访问权限,第二位是设置群组访问权限,最低位是设置其他人访问权限。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

__AUE__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值