![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
Josvin
这个作者很懒,什么都没留下…
展开
-
动态规划-最少硬币组合问题(Java)
问题: 如果我们有面值为1元、3元和5元的硬币若干枚,如何用最少的硬币凑够11元? 思路 代码 package java_20201010; import java.util.Scanner; /** * @ Created with IntelliJ IDEA. * @ClassName Test6 * @Description * @Author by小房 * @Date 2020/10/10 20:32 */ public class Test6 { /* * 假设原创 2020-10-10 21:17:40 · 4151 阅读 · 1 评论 -
算法:动态规划第三讲
第10题 回文串分割(Palindrome Partitioning) 题目链接 题目描述 给出一个字符串s,分割s使得分割出的每一个子串都是回文串 计算将字符串s分割成回文分割结果的最小切割数 例如:给定字符串s=“aab”, 返回1,因为回文分割结果[“aa”,“b”]是切割一次生成的。 解题思路 状态: 子状态:到第1,2,3,…,n个字符需要的最小分割数 F(i): 到第i个字符需要的最小分割数 状态递推: F(i) = min{F(i), 1 + F(j)}, where j<i &原创 2020-10-10 17:06:17 · 108 阅读 · 0 评论 -
算法:背包问题
背包问题 题目链接 题目描述 有 n 个物品和一个大小为 m 的背包. 给定数组 A 表示每个物品的大小和数组 V 表示每个物品的价值. 问最多能装入背包的总价值是多大? 解题思路 代码实现 public class Solution { /** * @param m: An integer m denotes the size of a backpack * @param A: Given n items with size A[i] * @param V: Given n it原创 2020-10-07 11:29:28 · 204 阅读 · 0 评论 -
算法:动态规划第二讲
第五题 三角矩阵 题目链接 题目描述 给出一个三角形,计算从三角形顶部到底部的最小路径和,每一步都可以移动到下面一行相邻的数字, 例如,给出的三角形如下: [[20],[30,40],[60,50,70],[40,10,80,30]] 最小的从顶部到底部的路径和是20 + 30 + 50 + 10 = 110。 注意: 如果你能只用O(N)的额外的空间来完成这项工作的话,就可以得到附加分,其中N是三角形中的行总数。 解题思路一 方法:动态规划 问题:从(0,0)到达最后一行的最小路径和 子状态:从(0,0原创 2020-10-07 00:25:19 · 112 阅读 · 0 评论 -
字符串分割动态规划(DP问题)详解
题目链接 字符串分割 题目描述 给定一个字符串s和一组单词dict,判断s是否可以用空格分割成一个单词序列,使得单词序列中所有的单词都是dict中的单词(序列可以包含一个或多个单词)。 例如: 给定s=“nowcode”; dict=[“now”, “code”]. 返回true,因为"nowcode"可以被分割成"now code". 代码 public class Solution { public boolean wordBreak(String s, Set<String>原创 2020-09-30 00:41:23 · 442 阅读 · 0 评论 -
算法:动态规划第一讲(Dynamic Programming)
DP定义: 动态规划是分治思想的延伸,通俗一点来说就是大事化小,小事化无的艺术。 在将大问题化解为小问题的分治过程中,保存对这些小问题已经处理好的结果,并供后面处理更大规模的问题时直接使用这些结果。 动态规划的三个特点 把原来的问题分解成了几个相似的子问题。 所有的子问题都只需要解决一次。 储存子问题的解。 动态规划的本质,是对问题状态的定义和状态转移方程的定义(状态以及状态之间的递推关系) 动态规划问题一般从以下四个角度考虑 状态定义 状态间的转移方程定义 状态的初始化 返回结果 状态定义的要求:原创 2020-09-28 17:20:24 · 166 阅读 · 0 评论 -
递归算法:从尾到头打印链表
题目链接 https://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35cfa8e8035?tpId=13&tags=&title=&diffculty=0&judgeStatus=0&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking 题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。原创 2020-07-30 10:54:42 · 236 阅读 · 0 评论 -
调整数组顺序使奇数位于偶数前面
核心考点:数组操作,排序思想的扩展使用 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 链接 https://www.nowcoder.com/practice/beb5aa231adc45b2a5dcc5b62c93f593?tpId=13&tqId=11166&rp=1&ru=/ta/coding-interviews&qru=/ta/cod原创 2020-07-29 00:24:12 · 135 阅读 · 0 评论