美团 软开 5道题

# 1、”美丽“数组

题目
    给定一个正整数 n,要求输出 n 个不完全相同,也不是完全不相同的正整数

思路
    第一个输出 2,后面的都输出 1 就行(题目要求只用给出一个满足要求的解即可)

# 2、整数拆分之后的和

题目
    给定一个整数(正负都有可能),将其拆分为前后两个数,要求两个数最大的和

思路
    遍历整数的每一位(即每一种拆分方法),维护最大和即可

注意
    负数的特殊情况,最大和需要初始化为一个很小的负值,而不能是零

# 3、能否转换字符串

题目
    给定两个字符串 s 和 t,以及一个正整数 k
    定义一次转换操作为,将一个字符变成其下一位(z 变成 a)
    问是否能恰好经过 k 次变换,将 s 变换为 t

思路
    统计 s 中每一位变成 t 中对应位需要的次数之和
    将 k 减去该和之后整除 26 即可

注意
    首先 k 需要比该和大,否则减为负数也可以整除 26,但实际上次数不够用

# 4、完全平方树

题目
    给定一个树,包含每个节点的值(只有 1 和 2 两种值)
    同时给定节点之间的边(n 个节点则只给出 n-1 条边)
    问树中存在多少条路径,其上所有点值的乘积为完全平方数

思路
    深度优先搜索(DFS)
    统计路径上 2 的数量(1 不影响乘积)
    当 2 为偶数个时,即为完全平方数,此时路径条数+1
    遍历到没有下一个节点时则回溯

# 5、V型数组

题目
    给定一个数组,满足其为 n 的排列(即数组中包含 1~n 的 n 个互不重复的整数)
    定义V型数组为 先递减后递增 的数组,同时全降序和全升序数组也算
    问至少需要多少次交换(每次只能交换数组中相邻位置)才能将原数组变成V型数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值