• LeetCode 53.最大子数组和17.电话号码的字母组合


    在这里插入图片描述

    最大子数组

    难度 简单 OJ链接
    在这里插入图片描述
    解题思路:
    假设,有这样的一个数组:
    在这里插入图片描述
    我们先设置第一个数为最大值max,然后设一个dp变量,来记录当前以下标i结尾的最大子数组的和
    结合上图来看,第一个数字它的最大的子数组的和就是它自己。那么我们一开始就可以把dp设为第一个数。然后从下标1开始。
    在这里插入图片描述
    当i为1时,指向的数是2,是正数。现在我们就要判断dp此时是正数还是负数。因为此时dp是下标为0结尾的最大子数组和,dp是1正数,那么我们就需要加上,因为正数+正数会更大。加上之后dp是3,dp比max大,就把dp赋值给max。

    然后i来到2,指向的数是-5。此时dp是下标为1结尾的最大子数组和,dp是3,是正数。加上dp是-2,-2小于max,所以max不变。

    然后i来到3,指向的数是4。此时dp是下标为2结尾的最大子数组和,dp是-2,是负数。负数我们不加,那么下标以3结尾的最大子数组和就为4。4赋值给dp,然后dp大于max,把dp赋值给max。

    然后i来到4,指向的数是1。此时dp是下标为3结尾的最大子数组和,dp是4,是正数。正数加上之后为5。5给dp,dp大于max,把dp赋值给max。

    然后i来到5,指向的数是-2。此时dp是下标为4结尾的最大子数组和,dp是5,是正数。加上是dp是-3,-3小于max,所以max不变。

    此时max是5,也就是下标为4的子数组和最大。

    代码实现如下:
    在这里插入图片描述

    电话号码的字母组合

    难度 中等 OJ链接
    在这里插入图片描述
    解题思路:
    首先,它输入的是数字字符串"23",而23对应的字符字符串是abc和def。而这两个字符字符串组成的组合一共有3*3=9种。而每种组合是从每个字符字符串各选一个来组合,每一个组合它的字符个数等于数字字符的个数。
    在这里插入图片描述
    这里,我们可以采取递归的方式来做。
    第一步:我们可以定义一个字符串数组来做我们的成员变量,里面存的是数字对应的字符串。
    在这里插入图片描述
    第二步:我们有四个参数,第一个参数就是输入的数字字符串。第二个参数是为了取数字字符串下标对应的数字。第三个参数是组合的字符串。第四个参数是返回结果的数组。
    在这里插入图片描述
    第三步:我们取数字字符串对应的数字,然后去取数字对应的字符串。
    在这里插入图片描述
    第四步:像上面的例子,我们首先取得的是数字2。数字2对应的字符字符串是abc。然后我们需要在abc中取一个字符,来组合到combineStr。然后再从下一个字符字符串中取一个字符来组合。
    在这里插入图片描述
    那么什么时候递归结束呢?当di等于数字字符串的个数时,就没有数字可取了,就递归结束。
    在这里插入图片描述
    代码如下
    在这里插入图片描述
    但此时代码是有问题的。我们用vs2019调试看一下:
    在这里插入图片描述
    此时,我们完成了第一组组合,返回会返回到递归函数那里。然后在def里面取第二个字符组合。
    在这里插入图片描述
    但此时di为3,combineStr为adc。那么就会出现错误,递归回来di应该还是1,combineStr为a才对。所以我们需要这样写:
    在这里插入图片描述
    这样我们既可以往下递归di和combineStr,又不会改变此时函数里的di和combineStr。

    最后一步:如果是空字符串,直接返回空vector。
    在这里插入图片描述

    好了,这篇文章就到这里。如果大家觉得有帮助,可以点赞收藏。谢谢大家!
    在这里插入图片描述

  • 相关阅读:
    c#中工厂模式详解
    用户画像系列—当我们聊用户画像,我们在聊什么?
    SolidWorks自定义装配体模板的方法
    Hadoop学习总结
    十年,再出发!WOT全球技术创新大会2022,用技术创新重塑世界
    modelsim波形高度异常,值为X
    【AI学习笔记】TensorFlow GPU版本的安装(超详细)
    Linux如何设置SUDO_ASKPASS
    2023秋招—大数据开发面经—美的
    Vue3 - Tree Shaking 摇树优化(它是什么?跟 Vue3 有什么关系?)
  • 原文地址:https://blog.csdn.net/qq_52154068/article/details/126217796