[Leetcode 1981. 最小化目标值与所选元素的差] 记忆化搜索
记忆化搜索
class Solution {
int ans = 5001;
public int minimizeTheDifference(int[][] mat, int target) {
int[][] state = new int[71][4901];
dfs(0, mat, target, 0, state);
return ans;
}
public static void main(String[] args) {
Solution solution = new Solution();
solution.minimizeTheDifference(new int[][]{
{3, 5}, {5, 10}
}, 47);
}
public void dfs(int i, int[][] mat, int target, int now, int[][] state) {
if (i == mat.length) {
ans = Math.min(Math.abs(now - target), ans);
return;
}
if (state[i][now] != 0) {
return;
}
if (now - target >= ans) {
return;
}
state[i][now] = 1;
for (int j = 0; j < mat[0].length; j++) {
dfs(i + 1, mat, target, now + mat[i][j], state);
}
}
}
[Leetcode 1981. 最小化目标值与所选元素的差] 记忆化搜索的更多相关文章
- UVA 825 Walking on the Safe Side(记忆化搜索)
Walking on the Safe Side Square City is a very easy place for people to walk around. The two-way ...
- csu 最优对称路径(bfs+记忆化搜索)
1106: 最优对称路径 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 371 Solved: 77[Submit][Status][Web Boar ...
- poj 3249 Test for Job (记忆化深搜)
http://poj.org/problem?id=3249 Test for Job Time Limit: 5000MS Memory Limit: 65536K Total Submissi ...
- [BZOJ1032][P1840] 祖玛 记忆化搜索 动态规划
描述 Description 某天,小x在玩一个经典小游戏——zumo.zumo游戏的规则是,给你一段长度为n的连续的彩色珠子,珠子的颜色不一定完全相同,但是,如果连续相同颜色的珠子大 ...
- leetcode 64. 最小路径和 动态规划系列
目录 1. leetcode 64. 最小路径和 1.1. 暴力 1.2. 二维动态规划 2. 完整代码及执行结果 2.1. 执行结果 1. leetcode 64. 最小路径和 给定一个包含非负整数 ...
- 【动态规划】【记忆化搜索】CODEVS 3415 最小和 CodeVS原创
f(l,r,i)表示第i段截第l位到第r位时,当前已经得到的价格最小值,可以很显然地发现,这个是没有后效性的,因为对之后截得的段都不造成影响. 注意水彩笔数=1的特判. 递归枚举当前段的r求解(∵l是 ...
- Leetcode 70. Climbing Stairs 爬楼梯 (递归,记忆化,动态规划)
题目描述 要爬N阶楼梯,每次你可以走一阶或者两阶,问到N阶有多少种走法 测试样例 Input: 2 Output: 2 Explanation: 到第二阶有2种走法 1. 1 步 + 1 步 2. 2 ...
- 记忆化搜索模板题---leetcode 1155. 掷骰子的N种方法
1155. 掷骰子的N种方法 这里有 d 个一样的骰子,每个骰子上都有 f 个面,分别标号为 1, 2, ..., f. 我们约定:掷骰子的得到总点数为各骰子面朝上的数字的总和. 如果需要掷出的总点数 ...
- [每日一题2020.06.14]leetcode #70 爬楼梯 斐波那契数列 记忆化搜索 递推通项公式
题目链接 题意 : 求斐波那契数列第n项 很简单一道题, 写它是因为想水一篇博客 勾起了我的回忆 首先, 求斐波那契数列, 一定 不 要 用 递归 ! 依稀记得当年校赛, 我在第一题交了20发超时, ...
- C#LeetCode刷题-记忆化
记忆化篇 # 题名 刷题 通过率 难度 329 矩阵中的最长递增路径 31.0% 困难
随机推荐
- yapi tag的问题,暂时只保留一个tag
yapi 的tag是需要先在网页上建立好,如:
- yapi 的分组的理解!
yapi ,分为超级管理员和 分组组长和项目组长: ------------------------------------------------------------------------ 人 ...
- Linux 在线安装MySQL8.0
1.更新Linux yum yum update 2.安装wget工具(如果已经安装wget,可以跳过该步骤) yum install wget 3.使用wget下载MySQL Yum Reposit ...
- NC19429 红球进黑洞
题目链接 题目 题目描述 在心理疏导室中有一种奇特的疏导工具,叫做红球.红球被提前分为了许多正方形小方格. 每当有人来找ATB做心理疏导时,ATB就会让他去先玩红球,然后通过红球小格方的高度来判断一个 ...
- Elasticsearch Web管理工具
Cerebro是一个开源的elasticsearch web管理工具 首先,下载Elasticsearch https://www.elastic.co/guide/en/elasticsearch/ ...
- Function与Object
Function与Object JavaScript中内置了两个顶级对象Function.Object,Object是所有对象的基类,而所有的构造函数同时又是Function对象的实例. Object ...
- MySQL日志:slow query log
ySQL的慢查询日志可以用来找出执行时间过长的查询语句,并进行针对性的优化. 一.slow log相关参数 以下参数都是动态参数,可以在实例运行时修改. slow_query_log=1 #是否启 ...
- Vue+ElementUI实现用户管理前后分离实战一:前端篇
项目介绍 前几天有老铁问我能不能写一个Vue+ElementUI+SpringBoot后端的前后分离项目,最近有点忙,但今天他还是来了!希望对大家能有点帮助,大家还想要点啥也可以加我QQ或给我留言 : ...
- Java Socket编程系列(二)开发带回声功能的Server和Client
服务器端: package com.dylan.socket; import java.io.*; import java.net.ServerSocket; import java.net.Sock ...
- Java并发编程实例--16.使用ReentrantLock实现线程同步
Java提供另一机制去同步代码块.它比synchronized关键字更强大且易用. 它是基于Lock接口和其实现类例如:ReentrantLock. 这一机制对比synchronized关键字的优势在 ...