首页 > 其他分享 >[leetcode]第 8 天 动态规划(简单)

[leetcode]第 8 天 动态规划(简单)

时间:2022-12-28 18:24:22浏览次数:43  
标签:return int sum public profit cost 动态 规划 leetcode

I. 斐波那契数列

思路

使用到了动态规划,最核心的思想,就在于拆分子问题,记住过往,减少重复计算。

class Solution {
    public int fib(int n) {
        int a = 0, b = 1, sum;
        for(int i = 0; i < n; i++){
            sum = (a + b) % 1000000007;
            a = b;
            b = sum;
        }
        return a;
    }
}

II. 青蛙跳台阶问题

思路

和之前那个一样,但是学到了备忘录法,就是自顶向下的方法

class Solution {
    Map<Integer, Integer> tempMap = new HashMap();
    public int numWays(int n) {
        if (n == 0) {
            return 1;
        }
        if (n <= 2) {
            return n;
        }

        if (tempMap.containsKey(n)) {
            return tempMap.get(n);
        } else {
            tempMap.put(n, (numWays(n - 1) + numWays(n - 2)) % 1000000007);
            return tempMap.get(n);
        }
    } 
}

63. 股票的最大利润

思路

class Solution {
    public int maxProfit(int[] prices) {
        int cost = Integer.MAX_VALUE, profit = 0;
        for(int price : prices) {
            cost = Math.min(cost, price);
            profit = Math.max(profit, price - cost);
        }
        return profit;
    }
}

标签:return,int,sum,public,profit,cost,动态,规划,leetcode
From: https://www.cnblogs.com/vincy9501/p/17010944.html

相关文章

  • 线性规划
    十级考点线性规划。一开始打算把单纯形写了跑路的,到后面发现这是个大坑。填了得了。线性规划的定义线性规划是一个需要最大/小化某个受限于有限个线性约束(线性等式和线性......
  • layui table 动态生成复杂表头 及 数据绑定问题
    table复杂表头 下面将是我们要实现的效果下面是后台返回的数据    复杂表头重要的属性:rowspancolspan需要注意的是循环生成表头时,循环时不会执行templet里......
  • vue动态菜单创建icon
    如图,左侧的菜单是动态生成的,前面的icon图标也要动态创建 实现方法:使用vue的 createVNode定义一个生成icon的文件:  createIcon.jsimport*asiconsfrom"@......
  • 【leetcode】3: 无重复字串的最长子串(python)
    给定一个字符串s,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1:输入:s="abcabcbb"输出:3解释:因为无重复字符的最长子串是"abc",所以其长度为3......
  • Chronicle Pro - 一款简单 Mac 理财规划师,管理你的的个人预算
    使用Chronicle追踪和支付账单,管理你的个人预算,这是一款简单的Mac理财规划师。获得通知,这样你就不会错过下一个付款截止日期;你再也不用付滞纳金了。把你所有的账单放在一......
  • JS动态加载引入JS文件
    1.调整标签位置可以把<script>标签放到HTML文档的最后面,这样不影响页面加载。 2.动态创建script来加载loadJS('js/index.min.js?V=1.0.0.1',function(){//加载,......
  • 使用 udev 高效、动态地管理 Linux 设备文件(转载)--1
     ​​黄懋​​,软件工程师,IBM简介: 本文以通俗的方法阐述udev及相关术语的概念、udev的配置文件和规则文件,然后以RedHatEnterpriseServer为平台演示一......
  • 006 使用动态代理实现自定义注解功能
    问题的提出:自定义一个注解,如@MyLog,当把此注解加在函数上时,该函数的调用会被自动日志。解题思路:创建函数所在对象的动态代理,当该函数被调用时,在代理中进行日志。两种方法:......
  • Mapper的动态代理
    可以自动生产接口的实现类,所以就不需要再写daoImpl这个实现类了,直接使用sqlSession.getMapper自动生成实现类  @Before此注解的目的是为了将@Befoe作为首先执行的......
  • 动态链接的实现
    启动链接器装载所有需要装载的对象重定位和初始化 动态链接器的自举:动态链接器本身也是一个共享对象。动态链接器的特殊性在于它不可以依赖其他共享对象,它所依......