这是942.增加或减小左代码上的字符串匹配,这很简单。
标签:“贪婪”,“结构”,“双指针”
$ n + 1 $的布置顺序由$ [0,n] $的所有整数组成的整数可以表示为$ n $的字符串,where:where:where:
给定一个字符串,重组和返回。如果有多个有效的安排,请返回其中任何一个。
示例1:
示例2:
示例3:
暗示:
根据目的,我们需要想象一种“结构”方法,以便可以顺利执行创建序列的过程。
直观地猜测,当$ s [i] = i $时,当前的最小值用于结构。当$ s [i] = d $时,请使用当前的结构最大值。
使用“归纳方法”来证明这种方法的可行性(可用范围为$ [0,n] $,构造函数是$ ans $ array):
原始问题的非订单情况:等于边界情况,可用数字仍然是连续的,并且当前的决策 - 制定不需要考虑其他条件(保证了先前步骤的准确性)。
此外,我们已经证明了构造的方法必须能够使用平稳的构造法律顺序。
建立这种方法的本质是:始终确保可用数字是连续的段落。每次为结构选择边界数时,它都可以直接确保当前构造函数转弯的正确性,以便可以将边界情况的电感推理用于每个构造函数。
代码:
这是我们“通过Leetcode”系列的第一篇文章。该系列始于2021/01/01。从开始开始时的起始代码开始,总共有1916年的问题。该主题已经完成。
在这一系列文章中,除了解释问题 - 解决想法之外,还将尽可能多地提供最简洁的代码。如果涉及通信,将有相应的代码模板。
为了使学生更容易在计算机上调试和提交代码,我建立了一个相关的仓库:https://github.com/sharingsource/logicstack-letcode。
在仓库地址中,您可以看到一系列文章的解释链接,一系列文章的相应代码,leetcode的原始链接以及其他首选解决方案。
原始:https://juejin.cn/post/709550546450317325