zoukankan      html  css  js  c++  java
  • 动态规划

    动态规划思想是将前面处理的结果记录下来,供后来的处理过程直接使用

    • 01背包

    有N件物品和一个容量为V的背包。第i件物品的体积是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。

    f[i,v] = max(f[i-1][v], f[i-1][v-c[i]] + w[i])

    答:一开始总是以为f[i-1][v-c[i]] + w[i]求的是i-1的重量+w[i],这样肯定比前面那个大,那max有什么用,原来要减去v-c[i]的容量

    • 爬楼梯

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

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

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

    答:f(n) = f(n-1) + f(n-2)

    • 最长递增子序列

    给你一个整数数组nums ,找到其中最长严格递增子序列的长度。

    子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。

    答:f(n) = max(f(i<n))+1

    • 不同的子序列

    给定一个字符串s和一个字符串t,计算在s的子序列中t出现的个数。

    字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,"ACE"是"ABCDE"的一个子序列,而"AEC"不是)

    题目数据保证答案符合32位带符号整数范围。

    答:dp[i][j] = dp[i - 1][j - 1] + dp[i][j - 1]

    当遍历到t[i]=s[j]时,即最后一个字符相等,这时有两种情况

    一种是t[i]匹配了s[j],个数相当是dp[i - 1][j - 1]

    二种是t[i]没匹配了s[j],那肯定是匹配了s[j]之前的字符,个数相当是dp[i][j - 1],所有两者相加

    当遍历到t[i]!=s[j]时,t[i]肯定不匹配s[j],所以个数只有dp[i][j - 1]

    • 让字符串成为回文串的最少插入次数

    给你一个字符串s,每一次操作你都可以在字符串的任意位置插入任意字符。

    请你返回让s成为回文串的最少操作次数。

    「回文串」是正读和反读都相同的字符串。

    答:

    dp[i][j] = min(dp[i + 1][j] + 1, dp[i][j - 1] + 1)                     if s[i] != s[j]
    dp[i][j] = min(dp[i + 1][j] + 1, dp[i][j - 1] + 1, dp[i + 1][j - 1])   if s[i] == s[j]

    leetcode

    le ee et tc co od de

    lee eet etc tco cod ode

    leet eetc etco tcod code

    ......

    这题难懂

    • 买卖股票的最佳时机

    给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
    如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。
    注意:你不能在买入股票前卖出股票。

    答:prices[i] - minprice

    • 买卖股票的最佳时机 II

    给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
    设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
    注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。

    答:

    dp[i][0]=max{dp[i1][0],dp[i1][1]+prices[i]}

    dp[i][1]=max{dp[i1][1],dp[i1][0]prices[i]}

    贪心算法没看懂

    • 打家劫舍

    dp[i]=max(dp[i2]+nums[i],dp[i1])

  • 相关阅读:
    linux 笔试题
    shell -Z- d等等代表
    shell中for循环总结
    linux启动过程
    linux面试题3
    linux面试题2
    小峰servlet/jsp(4)EL表达式
    小峰servlet/jsp(3)登陆功能实现
    小峰servlet/jsp(2)
    java日期比较例子等...
  • 原文地址:https://www.cnblogs.com/wahgon/p/15605850.html
Copyright © 2011-2022 走看看