文章 2023-10-19 来自:开发者社区

剑指offer(C++)-JZ46:把数字翻译成字符串(算法-动态规划)

题目描述:有一种将字母编码成数字的方式:'a'->1, 'b->2', ... , 'z->26'。现在给一串数字,返回有多少种可能的译码结果数据范围:字符串长度满足 0<n≤90进阶:空间复杂度 O(n),时间复杂度O(n)示例1:输入:"12"返回值:2说明:2种可能的译码结果(”ab” 或”l”)示例2:输入:"31717126241541717"返回值:192说明....

剑指offer(C++)-JZ46:把数字翻译成字符串(算法-动态规划)
文章 2023-10-19 来自:开发者社区

剑指offer(C++)-JZ48:最长不含重复字符的子字符串(算法-动态规划)

题目描述:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。数据范围: s.length≤40000 s.length≤40000示例:输入:"abcabcbb"返回值:3说明:因为无重复字符的最长子串是"abc",所以其长度为 3。 解题思路:本题是动态规划的经典题目。有两个解题思路。思路一:滑动窗口设计一个滑动窗口,窗口的右边界先行,用哈希表统计字符出现次数。当出....

剑指offer(C++)-JZ48:最长不含重复字符的子字符串(算法-动态规划)
文章 2023-10-19 来自:开发者社区

剑指offer(C++)-JZ47:礼物的最大价值(算法-动态规划)

题目描述:在一个m\times nm×n的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?如输入这样的一个二维数组,[[1,3,1],[1,5,1],[4,2,1]]那么路径 1→3→5→2→1 可以拿到最多价值的礼物,....

剑指offer(C++)-JZ47:礼物的最大价值(算法-动态规划)
文章 2023-10-19 来自:开发者社区

剑指offer(C++)-JZ63:买卖股票的最好时机(一)(算法-动态规划)

题目描述:假设你有一个数组prices,长度为n,其中prices[i]是股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益1.你可以买入一次股票和卖出一次股票,并非每天都可以买入或卖出一次,总共只能买入和卖出一次,且买入必须在卖出的前面的某一天2.如果不能获取到任何利润,请返回03.假设买入卖出均无手续费数据范围:0≤n≤10^5,0≤val≤10^4要求:空间复杂度 O(1....

剑指offer(C++)-JZ63:买卖股票的最好时机(一)(算法-动态规划)
文章 2023-10-19 来自:开发者社区

剑指offer(C++)-JZ70:矩形覆盖(算法-动态规划)

题目描述:我们可以用 2*1 的小矩形横着或者竖着去覆盖更大的矩形。请问用 n 个 2*1 的小矩形无重叠地覆盖一个 2*n 的大矩形,从同一个方向看总共有多少种不同的方法?数据范围:0≤n≤38 进阶:空间复杂度 O(1)  ,时间复杂度O(n) 注意:约定 n == 0 时,输出 0比如n=3时,2*3的矩形块有3种不同的覆盖方法(从同一个方向看):输入描述:2*1的小矩形的总个数....

剑指offer(C++)-JZ70:矩形覆盖(算法-动态规划)
文章 2023-10-19 来自:开发者社区

剑指offer(C++)-JZ71:跳台阶扩展问题(算法-动态规划)

题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶(n为正整数)总共有多少种跳法。数据范围:1≤n≤20进阶:空间复杂度 O(1) , 时间复杂度 O(1)示例:输入:3返回值:4解题思路:本题是青蛙跳台阶的扩展问题,本质上是一个数学问题。青蛙一次可以跳任意阶,假设到n级台阶的跳法是f(n),则有:同理:所以:2的n次方可以通过1左移n的方式快....

剑指offer(C++)-JZ71:跳台阶扩展问题(算法-动态规划)
文章 2023-10-19 来自:开发者社区

剑指offer(C++)-JZ19:正则表达式匹配(算法-动态规划)

题目描述:请实现一个函数用来匹配包括'.'和'*'的正则表达式。1.模式中的字符'.'表示任意一个字符2.模式中的字符'*'表示它前面的字符可以出现任意次(包含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配数据范围:1.str 只包含从 a-z 的小写字母。2.pattern 只包含....

剑指offer(C++)-JZ19:正则表达式匹配(算法-动态规划)
文章 2023-10-19 来自:开发者社区

剑指offer(C++)-JZ69:跳台阶(算法-动态规划)

题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。数据范围:1≤n≤40要求:时间复杂度:O(n) ,空间复杂度: O(1)示例:输入:2返回值:2说明:青蛙要跳上两级台阶有两种跳法,分别是:先跳一级,再跳一级或者直接跳两级。因此答案为2解题思路:本题考察算法-动态规划算法的使用。用四种逐优的解法,来一步步发现动态....

剑指offer(C++)-JZ69:跳台阶(算法-动态规划)
文章 2023-10-19 来自:开发者社区

剑指offer(C++)-JZ85:连续子数组的最大和(二)(算法-动态规划)

题目描述:输入一个长度为n的整型数组array,数组中的一个或连续多个整数组成一个子数组,找到一个具有最大和的连续子数组。1.子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1,3,7]不是子数组2.如果存在多个最大和的连续子数组,那么返回其中长度最长的,该题数据保证这个最长的只存在一个3.该题定义的子数组的最小长度为1,不存在为空的子数组,即不存在[]....

文章 2023-10-19 来自:开发者社区

剑指offer(C++)-JZ42:连续子数组的最大和(算法-动态规划)

题目描述:输入一个长度为n的整型数组array,数组中的一个或连续多个整数组成一个子数组,子数组最小长度为1。求所有子数组的和的最大值。数据范围:1<=n<=2×1050<=a[i]<=100要求:时间复杂度为 O(n),空间复杂度为 O(n)进阶:时间复杂度为 O(n),空间复杂度为 O(1)示例:输入:[1,-2,3,10,-4,7,2,-5]返回值:18说明:经分析....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

智能搜索推荐

智能推荐(Artificial Intelligence Recommendation,简称AIRec)基于阿里巴巴大数据和人工智能技术,以及在电商、内容、直播、社交等领域的业务沉淀,为企业开发者提供场景化推荐服务、全链路推荐系统开发平台、工程引擎组件库等多种形式服务,助力在线业务增长。

+关注