摘要: 最能想到的是暴力的方法。 动态规划在这里是最有效果的解法。 时间复杂度为 O( n )。 n = 0 的时候, f 为 true。 n = 1 的时候, 只需要判断第一个字母是否在字典里。设置一个结果为 true。 n = 2 的时候, 需要判断 0 - 1 个字母,也就是 f(1) 是否为 tru 阅读全文
posted @ 2019-09-18 18:17 stul 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 思路: 1.首先找到上山点,用一个变量 j 来开始上山。 2.计算山脉的长度。 长度分为两部分,一部分是上山,一部分是下山。 这题要注意边界。 3.保存山脉的长度 j - i + 1。 为什么要 +1 ?因为我们之前写的上山点是 A[ i ] > A [ i - 1] 。 i - 1 的时候,才是上 阅读全文
posted @ 2019-09-18 15:52 stul 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 题目的意思是,判断串 s 是否为串 t 的子序列。 暴力法,时间复杂度为 O(N)。 用法:java 的 indexOf indexOf有四种用法: 1.indexOf(int ch) 在给定字符串中查找字符(ASCII),找到返回字符数组所对应的下标找不到返回-1 2.indexOf(String 阅读全文
posted @ 2019-09-18 14:36 stul 阅读(484) 评论(0) 推荐(0) 编辑
摘要: 这个题目很容易想到用 dp 来做,而且状态转移方程也很简单, 标准方程是 :dp[i][j] = dp[i-1][j] + dp[i][j-1]. 我的方程:dp[i][j] = dp[i-1][j] + dp[i][j-1] + dp[i][j]。 多加了一个。因为我预处理的时候,把所有带 0 的 阅读全文
posted @ 2019-09-18 11:38 stul 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 这个题目归类于简单的 dp。 n = 1 的时候, dp[ 1 ] = 1. n = 2 的时候, dp[ 2 ] = max( dp[ 1] , nums[ 2 ]) n = 3 的时候, dp [ 3 ] = max( dp[2], nums[3] + dp[1]) 由此可以推出状态转移方程 d 阅读全文
posted @ 2019-09-18 11:34 stul 阅读(167) 评论(0) 推荐(0) 编辑