解析思路
leetcode 中等难度中比较简单的一个,题目描述点击这里。...读完描述可将本题精简为如下内容:
给两个整数 n 和 k,返回序列长度为 n 且数字和等于 k 的一个数字序列(每个数字的范围为 1-26,对应 26 个字母),要求小的数字尽量放前面.
...看到尽量小的数字放在前面且数字和是固定的,我们就应该想到可以用贪心算法来解决这个问题,思路如下:
设定 i=1,s=1
第 i 个数字放入 s,假设后面数字全部为 26,判断剩下的数字还能否满足要求...>=0 说明后面全填 26 肯定能满足要求,因此当前位置填入最小值 1,i=i+1,sum=sum+1,重复 1
如果 temp<0 说明即使后面全为 0 也不能满足要求,需要在 i 填入-temp 的值才行...另外本体可换一种描述,要求数字序列拼成的数字最小,比如['12','32']拼成 1232,也是一样的解法。