米哈游笔试第一题90%ac输出内容过多

米哈游第一题:
任何数字都可以由不同的3的幂加或减组成。
28 = 27 + 1
20 = 27 - 9 + 3 - 1
输入一个n
输出上述可以构成n的唯一字符串,从大到小排列
例如:
输入:
20
输出
27-9+3-1

这道题我a了90%,最后一个例子没过没搞明白为什么
首先思路是递归f(20) = 27 - f(7),然后过0%,说系统栈爆炸了,我直接慌了当时做了30min了,不能0啊;
然后改成迭代,用StringBuilder,过了90%,最后一个说是sb过长oom了,没理解。
然后尝试每次sout,又时间过长,可能sout占用时间过多;
最后尝试用BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));输出流来弄,结果告诉我说最后一个例子输出内容太多,不让我输出,离谱了。

代码附图,应该没错,离谱了。
全部评论
我最开始直接回溯过了一半,然后剪枝过了0.95,然后优化不动了🤔
1 回复 分享
发布于 2023-04-15 23:47 湖南
求夸夸,嘤嘤嘤
点赞 回复 分享
发布于 2023-04-17 19:11 北京
兄弟,我做出来了,有参考你的思路
点赞 回复 分享
发布于 2023-04-17 19:01 北京
uu什么岗?
点赞 回复 分享
发布于 2023-04-16 12:09 青海

相关推荐

那一天的Java_Java起来:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务