算法
文章平均质量分 54
Mars-xq
好记性不如烂笔头。
展开
-
算法: 零钱问题
import java.util.Arrays;/** * 问题描述:给定一个数值N,代表钱数。在给定一个表示零钱的子集,S = { S1, S2, … , Sm} * 问题是使用子集中的元素进行零钱兑换,存在多少种兑换方法?零钱的顺序不用考虑。 * <p> * 举例一:给定数值4,和子集 S = {1,2,3} 那么存在4中兑换方法: {1,1,1,1},{1,1,2},......原创 2020-03-30 15:14:34 · 663 阅读 · 0 评论 -
算法: 背包问题
/** * 问题描述: * 一个背包的总容量为V,现在有N类物品,第i类物品的重量为weight[i],价值为value[i] * 那么往该背包里装东西,怎样装才能使得最终包内物品的总价值最大。这里装物品主要由三种装法: * 1、0-1背包:每类物品最多只能装一次 * 2、多重背包:每类物品都有个数限制,第i类物品最多可以装num[i]次 * 3、完全背包:每类物品可以无限次装进包内...原创 2020-03-30 15:00:36 · 170 阅读 · 0 评论 -
leetcode 39 : 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。
import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * 题目: * 组合总和 -- leetcode 39 * <p> * 题目描述: * <p> * 给定一个无重复元素的数组 candidates 和一个目标数 target , * 找出 can...原创 2020-03-30 14:57:19 · 2046 阅读 · 0 评论 -
算法: 一个数组中是否存在两个整数的和为100
import java.util.Arrays;import java.util.HashMap;import java.util.HashSet;/**https://blog.csdn.net/chance00/article/details/81098710题目: 设计一个算法判断一个数组中是否存在两个整数的和为100或其他数值。*/public class Su...原创 2020-03-30 14:50:54 · 420 阅读 · 0 评论 -
递归/迭代对比,算法时间复杂度
递归与迭代//求1+2+3+…+n//递归fun recursive(n: Int): Int { return if (n == 0) 0 else n + recursive(n - 1)}//迭代fun iteration(n: Int): Int { var result = 0 for (i in 1..n) result += i re...原创 2020-03-27 10:24:04 · 6374 阅读 · 0 评论 -
斐波那契数列 : 递归,备忘录递归,动态规划实现与对比
参考: 细谈递归,备忘录递归,动态规划,三种算法思想和运行原理import java.util.HashMap;/** * 1、1、2、3、5、8、13、21、34、…… * 斐波那契数列以如下被以递推的方法定义: * F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*) * <p> * 大家都知道,数值稍大的递归运行...原创 2020-03-27 10:07:26 · 675 阅读 · 0 评论 -
经典动态规划:打家劫舍系列问题House Robber盗贼
参考:leetcode 337. 打家劫舍 III java经典动态规划:打家劫舍系列问题【LeetCode】打家劫舍系列(I、II、III)线性村庄import java.util.Arrays;/** * https://www.cnblogs.com/gzshan/p/11188104.html * https://www.jianshu.com/p/11684bd0115...原创 2020-03-26 17:29:50 · 436 阅读 · 0 评论 -
动态规划:数字三角形最大求和路径
参考:经典算法——数字三角形的三种解题方法:递推、记忆化搜索、动态规划解法一://递推方法/* * 思路整理: * 首先找出递推公式: * arr[i][j] = arr[i][j] + max(arr[i+1][j],arr[i+1][j+1]) * * 递推从下往上,一直计算到最上面的时候刚好是最大值 * * 数字三角形。如下图所示的数字三角形,从三角形的顶部到底部有很...原创 2020-03-26 15:56:05 · 1831 阅读 · 0 评论 -
动态规划算法:走台阶和走方格
走台阶/** * 青蛙跳台阶 * * 要求: * 一只青蛙一次可以跳上1级台阶,也可以跳上2级。 * 求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 * * 思路: * 如何跳上第n阶? * 方法一:在第n-1阶向上跳1级 * 方法二:在第n-2阶向上跳2级 * 所以跳上第n阶的跳法等于 跳上第n-1阶的跳法 加上 跳上第n-2阶的跳法 */p...原创 2020-03-26 15:29:59 · 858 阅读 · 0 评论