《算法通关村——再次透彻理解动态规划》

《算法通关村——透彻理解动态规划》

91. 解码方法

一条包含字母 A-Z 的消息通过以下映射进行了 编码

'A' -> "1"
'B' -> "2"
...
'Z' -> "26"

解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,"11106" 可以映射为:

  • "AAJF" ,将消息分组为 (1 1 10 6)
  • "KJF" ,将消息分组为 (11 10 6)

注意,消息不能分组为 (1 11 06) ,因为 "06" 不能映射为 "F" ,这是由于 "6""06" 在映射中并不等价。

给你一个只含数字的 非空 字符串 s ,请计算并返回 解码 方法的 总数

题目数据保证答案肯定是一个 32 位 的整数。

示例 1:

输入:s = "12"
输出:2
解释:它可以解码为 "AB"(1 2)或者 "L"(12)。

示例 2:

输入:s = "226"
输出:3
解释:它可以解码为 "BZ" (2 26), "VF" (22 6), 或者 "BBF" (2 2 6) 。

示例 3:

输入:s = "06"
输出:0
解释:"06" 无法映射到 "F" ,因为存在前导零("6" 和 "06" 并不等价)。

提示:

  • 1 <= s.length <= 100
  • s 只包含数字,并且可能包含前导零。
class Solution {public int numDecodings(String s) {int[] dp = new int[s.length() + 1];dp[0] = 1;for(int i  =  1 ;i <= s.length();i++){if(s.charAt(i-1) != '0'){dp[i] += dp[i-1];}if(i>1 && check(s,i)){dp[i] += dp[i-2];}}return dp[s.length()];} public boolean check(String s,int i ){if(s.charAt(i-2) == '0'){return false;}if((s.charAt(i-2) - '0') * 10 + (s.charAt(i-1) -'0') > 26){return false;}return true;}
}

322. 零钱兑换

给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。

计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1

你可以认为每种硬币的数量是无限的。

示例 1:

输入:coins = [1, 2, 5], amount = 11
输出:3 
解释:11 = 5 + 5 + 1

示例 2:

输入:coins = [2], amount = 3
输出:-1

示例 3:

输入:coins = [1], amount = 0
输出:0

提示:

  • 1 <= coins.length <= 12
  • 1 <= coins[i] <= 231 - 1
  • 0 <= amount <= 104
class Solution {public int coinChange(int[] coins, int amount) {int max = amount + 1;int [] dp = new int[amount + 1];Arrays.fill(dp,max);dp[0] = 0;for (int i  = 1;i<=amount;i++){for(int j = 0; j< coins.length;j++){if(coins[j] <= i){dp[i] = Math.min(dp[i],dp[i-coins[j]]+1);   }}}return dp[amount] > amount? -1 : dp[amount];}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/367802.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html5新特性:异步上传文件

<!DOCTYPE html><html><head><meta charset"utf-8"/><title>html5文件上传</title></head><body><input type"file" name"file" id"file" /><br/><input type"s…

查看环境变量有无配置成功等命令操作

查看环境变量有无配置成功 &#xff1a;windowR cmd set&#xff08;回车&#xff09; 现在可以看到配置成功的环境变量NVM_HOME NVM_SYMLINK等环境变量 也可以单独查看某个变量有无配置成功,例如set NVM—HOME. 转载于:https://www.cnblogs.com/JavascriptAndHtml5/p/9469932…

WildFly 8.0.0.Alpha1的发布和一些历史

自从我们发布WildFly 8.0.0.Alpha1版本以来&#xff0c; 已经过去了大约2周。 该下载位于WildFly下载页面上 。 我敢肯定&#xff0c;你们中的许多人可能会想知道WildFly是什么&#xff0c;而其中一些知道它是什么的人可能不会知道已经发布了。 我将尝试回答其中一些问题&#…

mysql中字典值怎么添加_插入Python字典中的值,包括MySQL的键

我有以下字典&#xff1a;{ : [0, 9],3904: [playback_error, 87],3808: [playback_error, 24],3902: [qp_library_failed_to_start, 1],3903: [playback_error, 464],3805: [playback_error, 141],3807: [playback_error, 29],3806: [playback_error, 1],1309: [playback_erro…

Redis是单线程的

Redis是单线程的 学习了&#xff1a; http://blog.csdn.net/liupeng_qwert/article/details/77263187 https://www.cnblogs.com/syyong/p/6231326.html 这个膜拜一下 https://www.cnblogs.com/yuyutianxia/p/6346723.html http://blog.csdn.net/qqqqq1993qqqqq/article/detail…

POJ 1276 Cash Machine

很容易看出来是一个背包问题&#xff0c;开始把每一张钞票都跑了一遍01背包&#xff0c;直接TLE了。 其实就是多重背包模板题。 1 //#include <bits/stdc.h>2 #include <iostream>3 #include <utility>4 #include <vector>5 #include <cstring>6…

Html5结合JS实现浏览器全屏功能

项目中需要将后台浏览器的窗口全屏&#xff0c;也就是我们点击一个按钮要实现按F11全屏的效果。 在HTML5中,W3C制定了关于全屏的API&#xff0c;就可以实现全屏幕的效果&#xff0c;也可以让页面中的图片&#xff0c;视频等全屏目前只有google chrome 15 , safri5.1 ,firfox10 …

Spring @Bean和PropertyPlaceHolderConfigurer

最近&#xff0c;我被我认为将是一个相当简单的实现所困扰-考虑以下基于Spring Java的bean定义文件&#xff08; Configuration &#xff09;&#xff1a; package root;...Configuration PropertySource("classpath:root/test.props") public class SampleConfig …

导出mysql excel数据字典_mysql导出 Excel数据字典(全)

解决问题(有mysql数据库数据表想要将表导入到PowerDesigner 或导出Excel数据字典)一、下载工具1、工具PowerDesigner 百度自行下载安装2、mysql-connector-odbc 下载链接: https://pan.baidu.com/s/1cjb73f3GvkkMFAzZKi85xA 提取码: u5ih二、mysql数据库数据表想要将表导入到Po…

斐波那契数列算法小结

关于求解斐波那契数列&#xff0c;这是一道比较经典的题目&#xff0c;本文主要是对斐波那契数列求解方法的小结。 首先&#xff0c;定义Fibonacci数列如下&#xff1a; 方法1&#xff1a; 利用递归求解&#xff0c;这是最容易写出的算法&#xff0c;代码如下&#xff1a; #inc…

模块(sys/os/序列化模块)

sys 模块: sys.path 返回模块的搜索路径,初始化时使用pythonpath环境变量的值 sys.modules 返回所有在当前这个python程序中导入的模块的 sys.exit 退出程序 sys.argv 返回一个列表 列表的第一个元素是执行这个文件的时候,写在python后面的第一个值, 之后的元素是在执行…

JPA 2 | 获取联接以及我们是否应该使用它们

介绍 最近&#xff0c;我一直在与JPA 2中的FETCH JOINS一起使用&#xff0c;以期从数据库中急切地获取数据&#xff0c;并且我学到了很多关于为什么在日常操作中应避免使用Fetch Joins的知识。 今天的博客文章谈论了我在Fetch上的经历和学习&#xff08;主要基于当我在查询中有…

mysql yintint类型_MySQL服务器2 被嫌弃的胖子

1.sql的基本语法对数据库create database db1;  创建数据库对表&#xff1a;create database t1(id int,name char(10));  创建表show create table t1;  查看创建的t1表show tables;  查看所有的表desc t1;  查看表的详细结构对数据&#xff1a;insert into t1(id,n…

Html5表单元素-搜索框和上传文件框

1、search - 搜索框element/form/input/search.html<!doctype html><html><head> <title>search</title></head><body> <!-- search - 搜索框&#xff0c;文本框形式 --> <input type"search"…

Shell 简单的java微服务jar包 -- 部署脚本

部署描述&#xff1a; 1.jenkins 通过maven编译成jar 项目包 2.shell 脚本从jenkins机器发布到&#xff1a;目标主机 注释&#xff1a;次脚本没有写jar包的备份&#xff0c;有时间加上 脚本内容&#xff1a; #!/bin/bash#线上服务器列表 HOST_LIST${:2}#项目名 REMOTE_PROJECT$…

BZOJ 4552 [Tjoi2016Heoi2016]排序 | 二分答案 线段树

题目链接 题面 题目描述 在2016年&#xff0c;佳媛姐姐喜欢上了数字序列。因而他经常研究关于序列的一些奇奇怪怪的问题&#xff0c;现在他在研究一个难题&#xff0c;需要你来帮助他。这个难题是这样子的&#xff1a;给出一个1到n的全排列&#xff0c;现在对这个全排列序列进行…

python import 类 继承_python学习之类的继承

面向对象中一个重要的特性就是继承&#xff0c;继承的好处就是提高代码的重用率&#xff0c;减少不必要的代码。继承是父类与子类的关系&#xff0c;当子类继承了父类后&#xff0c;就具有了父类的所有变量和方法。在python中定义继承的语法是&#xff1a;class 派生类名(基类名…

Html5画布(canvas)实例之绘制矩形

路径方式绘制 - 矩形 | rect()canvas/shape/path/rect.html <!DOCTYPE HTML><html><head> <title>以路径的方式在 canvas 上绘制矩形的 demo</title></head><body> <canvas id"canvas" width"300" hei…

[patl1-046]整除光棍

解题关键&#xff1a;模拟除法 #include<cstdio> #include<cstring> #include<algorithm> #include<cstdlib> #include<iostream> #include<cmath> using namespace std; typedef long long ll; char ans[10002]; int main(){int n;cin>…

使用AspectJ审计Spring MVC Webapp。 第2部分

现在&#xff0c;如果您有兴趣创建一个以Aspectj的Aspect和Before批注的形式使用面向方面编程&#xff08;AOP&#xff09;的Spring MVC Webapp来审核用户对屏幕的访问&#xff0c;那么这是您想要阅读的博客。 正如我在上一个博客中所说的那样&#xff0c;审核用户对屏幕的访问…