[leetcode]Decode Ways

动态规划。要注意way+=dp[i-1]或dp[i-2]以及way+=1的条件。我看有的人把数组命名为count的。

public class Solution {public int numDecodings(String s) {// Start typing your Java solution below// DO NOT write main() functionint len = s.length();if (len == 0) return 0;int[] dp = new int[len];for (int i = 0; i < len; i++) {int way = 0;if (s.charAt(i) != '0') {if (i-1 >= 0) {way += dp[i-1];}else {way += 1;}}if (i-1 >= 0 && (s.charAt(i-1) == '1' || (s.charAt(i-1) == '2' && s.charAt(i) <= '6'))) {if (i-2 >= 0) {way += dp[i-2];}else {way+= 1;}}dp[i] = way;}return dp[len-1];}
}

第二刷,做繁琐了

class Solution {
public:vector<int> ways;int numDecodings(string s) {if (s.size() == 0)return 0;ways.clear();ways.resize(s.size() + 1);for (int i = 0; i < ways.size(); i++){ways[i] = -1;}return numDecodingsRe(s, 0);}int numDecodingsRe(const string &s, int start){if (ways[start] != -1){return ways[start];}if (start == s.size()){ways[start] = 1;return 1;}if (s[start] < '1' || s[start] > '9'){ways[start] = 0;return 0;}if (start == s.size() - 1){ways[start] = 1;return 1;}if (s[start] == '1'){ways[start] = numDecodingsRe(s, start + 1) + numDecodingsRe(s, start + 2);return ways[start];}if (s[start] == '2' && s[start + 1] <= '6'){ways[start] = numDecodingsRe(s, start + 1) + numDecodingsRe(s, start + 2);return ways[start];}ways[start] = numDecodingsRe(s, start + 1);return ways[start];}
};

  

转载于:https://www.cnblogs.com/lautsie/p/3251130.html

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

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

相关文章

逻辑回归与正则化

在分类问题中,你要预测的变量 y 是离散的值,我们将学习一种叫做逻辑回归 (Logistic Regression) 的算法,这是目前最流行使用最广泛的一种学习算法。 在分类问题中,我们尝试预测的是结果是否属于某一个类(例如正确或错误)。分类问 题的例子有:判断一封电子邮件是否是垃圾邮件;判…

万字报告!一文看懂全球车厂的技术家底模块化平台

来源&#xff1a;智东西摘要&#xff1a;介绍模块化平台以及该平台对车企的重要意义&#xff0c;详解车企模块化平台布局。汽车的研发制造方式经历了手工作坊式到标准化流水线再到平台化&#xff0c;目前主流车企纷纷采取模块化平台方式。汽车模块化平台研发制造是指车企基于通…

记录下Lambda常用的表现形式

纯粹记录下Lambda的表现形式&#xff1a; (x, y) > x * y;//多参数&#xff0c;隐式类型>表达式 x > x * 10;//单参数&#xff0c;隐式类型>表达式 x > { return x * 10; }; //单参数&#xff0c;隐式类型>语句块 (int x) > x * 10;//单参数&#xff0c;显…

西湖大学全披露:68位顶级科学家加盟,已获捐资35亿,最小捐赠者12岁

来源&#xff1a;量子位最终&#xff0c;2018年10月20日&#xff0c;成为了西湖大学的成立日。在刚结束的成立大会上&#xff0c;5名诺贝尔奖得主、70余位国内外校长及代表、近百位捐赠人齐聚。可谓少长咸集&#xff0c;高朋满座&#xff0c;生而备受期待。而且就在创立大会上&…

字体大宝库:设计师必备的专业免费英文字体

字体绝对是每一个设计非常重要的部分&#xff0c;设计者总是希望有最好的免费字体&#xff0c;以保持他们字体库的更新。所以今天我要向设计师们分享一个专业的免费英文字体集合。这些免费的字体是适用于任何类型的图形设计&#xff1a;Web&#xff0c;打印&#xff0c;动态图形…

神经网络学习

代价函数 首先引入一些便于稍后讨论的新标记方法: 假设神经网络的训练样本有 m 个,每个包含一组输入 x 和一组输出信号 y,L 表示神经 网络层数,Sl表示每层的 neuron 个数(SL表示输出层神经元个数),SL代表最后一层中处理 单元的个数。 将神经网络的分类定义为两种情况:二类分…

干货|深度!“人工智能+制造”产业发展研究报告

来源&#xff1a;&#xff1a;腾讯研究院工业革命以后的“自动化”概念追求的是机器自动生产&#xff0c;本质是“机器替人”&#xff0c;强调在完全不需要人的情况下进行不间断的大规模机器生产&#xff1b;而“智能化”追求的是机器的柔性生产&#xff0c;本质是“人机协同”…

简明外贸报价单(Price List)范本

简明外贸报价单&#xff08;Price List&#xff09;范本 简明外贸报价单&#xff08;Price List&#xff09;范本 报价单 Price List 报价日期&#xff1a;年 月 日 Supplier   Address   供应商 公司地址 Contact   Approvals   联系人名 产品认证 Tel …

机器学习系统设计与建议

当我们在运用训练好了的模型来预测未知数据的时候发现有较大的误差,我们下一步可以 做什么? 1. 获得更多的训练实例——通常是有效的,但代价较大,下面的方法也可能有效,可 考虑先采用下面的几种方法。 2. 尝试减少特征的数量 3. 尝试获得更多的特征 4. 尝试增加多项式特征…

李飞飞重返斯坦福后的大动作:开启「以人为中心的AI计划」

来源&#xff1a;网络大数据刚刚&#xff0c;李飞飞宣布斯坦福开启「以人为中心的 AI 计划」(Human-Centered AI Initiative&#xff0c;HAI)&#xff0c;该项目由李飞飞和斯坦福大学前教务长 John Etchemendy 共同主导&#xff0c;Chris Manning 也参与其中。李飞飞在 twitter…

前端开发如何做好SEO优化的工作

前端开发工程师不仅需要要跟视觉设计师、交互式设计师配合&#xff0c;完美还原设计图稿&#xff0c;编写兼容各大浏览器、加载速度快、用户体验好的页面。现在还需要跟SEO人员配合&#xff0c;调整页面的代码结构和标签。 一些成熟的平台&#xff0c;在开发初期并没有考虑优化…

支持向量机学习

与逻辑回归和神经网络相比,支持向量机,或者简称 SVM,在学习复杂的非线性 方程时 供了一种更为清晰,更加强大的方式 如果我们用一个新的代价函数来代替,即这条从 0 点开始的水平直线,然后是一条斜 线,像上图。那么,现在让我给这两个方程命名,左边的函数,我称之为cost1(z),同时,…

中国安防行业十年报告:产值增涨四倍!双巨头全球称雄

来源&#xff1a;智东西近年来&#xff0c;安防是一个快速增长的行业&#xff0c; 过去十年&#xff0c; 复合 17%的行业增长率证明了行业的持续性&#xff0c;龙头份额提升持续获得超越平均的增速。 根据历史数据&#xff0c; 2008 年至 2017 年&#xff0c; 十年内中国安防行…

从零开始:iOS(三)

整理一些Objective-c相关知识. c#与objective-c对照着看,一步一步来.重点在oc上. 1:新建类. /*C#*/public class Person{private string name;public string GetName(){return name;}public void SetName(string value){name value;}public static void SayHello(){ /*print h…

聚类算法学习

聚类是一种非监督学习方法 在一个典型的监督学习中,我们有一个有标签的训练集,我们的目标是找到能够区分正 样本和负样本的决策边界,在这里的监督学习中,我们有一系列标签,我们需要据此拟合一 个假设函数。与此不同的是,在非监督学习中,我们的数据没有附带任何标签,我们拿到…

斯坦福大学:极限工况下的无人驾驶路径跟踪|厚势汽车

来源&#xff1a; 同济智能汽车研究所责任编辑&#xff1a;啜小雪文章译自 2017 年美国控制年会的会议论文原标题&#xff1a;Path-Tracking for Autonomous Vehicles at the Limit of Friction原作者&#xff1a;Vincent A. Laurense, Jonathan Y. Gohand J. Christian Gerdes…

SQLite DBHelp

c#连接SQLite SQLite这个精巧的小数据库&#xff0c;无需安装软件&#xff0c;只需要一个System.Data.SQLite.DLL文件即可操作SQLite数据库。SQLite是一个开源数据库&#xff0c;现在已变得越来越流行&#xff0c;它的体积很小&#xff0c;被广泛应用于各种不同类型的应用中。S…

手写数字识别实现

本文主要实现手写数字识别&#xff0c;利用多类逻辑回归与神经网络两种方法实现 Multi-class Classification 数据源 There are 5000 training examples in ex3data1.mat, where each training example is a 20 pixel by 20 pixel grayscale image of the digit. Each pixe…

Science:若DTC基因检测达2%成年人群,几乎所有人的身份或将无所遁形

来源&#xff1a;测序中国摘要&#xff1a;直接面向消费者&#xff08;DTC&#xff09;的基因检测不仅仅是有趣那么简单&#xff0c;它的有用性随着样本数据库的积累&#xff0c;会逐渐显露出来。消费级基因检测&#xff0c;即直接面向消费者&#xff08;DTC&#xff09;的基因…

QT 获取屏幕尺寸的法子

#include "QDesktopWidget" QDesktopWidget* desktopWidget QApplication::desktop(); QRect deskRect desktopWidget->availableGeometry(); //可用区域 QRect screenRect desktopWidget->screenGeometry(); //屏幕区域 int w screenRect.width(); int …