每日算法&面试题⚡动态规划21天——第二天

Posted 肥学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日算法&面试题⚡动态规划21天——第二天相关的知识,希望对你有一定的参考价值。

导读

肥友们为了更好的去帮助新同学适应算法和面试题,最近我们开始进行专项突击一步一步来。我们先来搞一下让大家最头疼的一类算法题,动态规划我们将进行为时21天的养成计划。还在等什么快来一起肥学进行动态规划21天挑战吧!!

21天动态规划入门

动态规划不是一种具体的算法,不像递归,枚举那样又一些特定的标识。相比较动态规划难就难在他的动态变化,以某些变量的动态变化来进行时间,空间上的节省。写动态规划时首先要确定好边界条件这是最主要的。

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

注意:给定 n 是一个正整数。

示例 1:

输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1.  1+ 12.  2
示例 2:

输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。
1.  1+ 1+ 12.  1+ 23.  2+ 1
//解法同上次斐波那契数列一致
 public int climbStairs(int n) {
        if(n==1||n==2||n==3){
            return n;
        }
        int pre=1,end=2,now=3;
        for(int i=3;i<n;i++){
            pre=end;
            end=now;
            now=pre+end;
        }
        return now;

    }

数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。

每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。

请你找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。

示例 1:

输入:cost = [10, 15, 20]
输出:15
解释:最低花费是从 cost[1] 开始,然后走两步即可到阶梯顶,一共花费 15
 示例 2:

输入:cost = [1, 100, 1, 1, 1, 100, 1, 1, 100, 1]
输出:6
解释:最低花费方式是从 cost[0] 开始,逐个经过那些 1 ,跳过 cost[3] ,一共花费 6

根据上一题很容易解出来

//这类题都可以以二叉思路来分析,即在一个台阶上可以有两种方式上来(跨一次或跨两次)
 public int minCostClimbingStairs(int[] cost) {
        if(cost.length<2)return 0;
        int[] sumCost=new int[cost.length+1];
        sumCost[0]=sumCost[1]=0;
        for(int i=2;i<cost.length+1;i++){
            sumCost[i]=Math.min(cost[i-1]+sumCost[i-1],cost[i-2]+sumCost[i-2]);
        }
        return sumCost[cost.length];
    }

面试题

同样也是很重要的面试问题Linux的常用命令之cp

5.  mv命令
(用于移动文件、目录或更名,move之意)

-f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件已经存在,就会询问是否覆盖
-u :若目标文件已经存在,且比目标文件新,才会更新

这套Linux面试必学知识肥学会一直更下去,我觉得我一下子都总结出来。大家肯定放在收藏夹吃灰所以我们就每天学习一点,肥学每一天。

特别介绍

📣小白练手专栏,适合刚入手的新人欢迎订阅编程小白进阶

📣python有趣练手项目里面包括了像《机器人尬聊》《恶搞程序》这样的有趣文章,可以让你快乐学python练手项目专栏

📣另外想学JavaWeb进厂的同学可以看看这个专栏:传送们

📣这是个面试和考研的算法练习我们一起加油上岸之路

资料领取

这里有python,Java学习资料还有有有趣好玩的编程项目,更有难寻的各种资源。反正看看也不亏。

以上是关于每日算法&面试题⚡动态规划21天——第二天的主要内容,如果未能解决你的问题,请参考以下文章

Java集训(算法&&面试题)第二天

冲刺大厂每日算法&面试题,动态规划21天——第四天

冲刺大厂每日算法&面试题,动态规划21天——第九天

冲刺大厂每日算法&面试题,动态规划21天——第十天

冲刺大厂每日算法&面试题,动态规划21天——第五天

冲刺大厂每日算法&面试题,动态规划21天——第十一天