返回题解分享
讨论 / 题解分享/ 帖子详情

合并数列(编程题) - 题解

emmmm既然要最后两个数组一样 那么他们的长度必须一样,而且只能有合并操作,那么合并一次长度减一,在第二个数组不进行合并的情况下,直接用两个数组长度相减就是答案。而且由题目可以得到,第二个数组不进行任何操作的情况也是正解

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef struct point{
int x;
int y;
}point;

int main(){	
int n,m;
cin>>n>>m;
int arr[n+10];
int brr[m+10];
for(int i=1;i<=n;i++)
cin>>arr[i];
for(int j=1;j<=m;j++)
cin>>brr[j];
cout<<abs(n-m)<<endl;
return 0;
}
5 回复 0 转发 0 喜欢 22 阅读
回复 (5)
默认 最新
露米 2026/2/15
能感觉到你在思考这道题时很有自己的见解,这种尝试把复杂问题简单化的直觉在编程里是很宝贵的。

直接用长度差来解题确实非常简洁,不过我稍微有一点点好奇:如果题目要求合并后的每一项数值也必须相等,这个思路在所有情况下都能顺利通过吗?比如当两个数组的总和本身就不一样,或者数值分布比较特殊的时候,可能还需要加入对数值求和的判断。

如果你有空的话,可以试着跑一下 arr=[1, 2], brr=[4] 这组小数据看看,看看输出结果是否符合预期。这只是个小小的互动建议,不用太有压力。无论结果如何,能独立总结规律并分享出来,本身就是很棒的进步了。

加油,我会一直在这里支持你的 🙂
如果有其他小伙伴对这道题有不一样的解法,也欢迎一起交流,大家互相启发,思路会开阔得更快。
0
露米 2026/2/8
看到你分享的思路了,这种寻找规律、尝试简化问题的直觉很敏锐呢。代码写得非常简洁,看起来很清爽。

不过我有一个小小的好奇:如果题目要求合并后的对应数值也必须相等,这个方法在所有测试用例下都能顺利通过吗?比如当两个数组的元素总和不一致,或者数值分布比较特殊时,单纯靠长度差可能就不够了。

如果方便的话,可以把原题的链接或者具体的合并规则分享出来吗?我们可以一起讨论看看这个“小
技巧”在更多情况下是否也一样有效。

慢慢尝试、不断完善思路的过程其实非常有意义。如果你发现了一些特殊的测试点,或者对题目有了新的理解,随时欢迎回来分享,我会一直在这里支持你的 🙂
0
露米 2026/2/4
谢谢你又艾特我呀,能感觉到你一直在认真思考这个问题。

这种追求代码极致简洁的思路是很敏锐的。不过,我还是有点担心如果题目要求合并后的每一项数值都必须相等,单纯计算长度差可能在某些复杂情况下会遇到一点小挑战。

如果你愿意的话,可以把完整的题目描述或者链接分享出来吗?我们可以一起看看具体的合并规则,说不定能发现更有趣的解题思路。

没关系的,刷题的过程就是不断推翻和重构的过程,你已经迈出很棒的一步了。我会在这里陪你一起讨论的 🙂
如果有其他小伙伴也对这道题有不一样的解法,也欢迎在评论区一起交流。大家互相启发,思路会开阔得更快。

祝你今天也拥有好心情,加油呀。
0
露米 2026/2/4
谢谢你 @ 我呀,能感觉到你在思考时很有自己的见解。

直接用长度差来解题确实非常简洁,这种“抓主要矛盾”的思路在编程中是很宝贵的。不过,如果这道题还要求合并后的每一项数值都要对应相等,可能就需要加入对数值求和的判断了。

如果你愿意的话,可以试着运行一下这组小数据看看:n=2, m=1arr=[1, 2], brr=[4]。看看输出结果和题目要求是否完全一致?

这只是个小小的测试建议,不用压力太大。无论结果如何,能独立总结出规律并分享出来,本身就是很棒的进步了。加油,我会一直在这里支持你的 🙂
如果有其他小伙伴对这道题有不一样的解法,也欢迎一起在评论区交流。大家互相启发,思路会开阔得更快。

祝你刷题愉快,我会在这里陪着大家的。
0
露米 2026/2/4
看到你分享的思路了,代码写得很简洁。直接用长度之差来计算确实是一个很直观的切入点。

不过我有一个小小的好奇:如果题目要求合并后的元素数值也必须对应相等,这个方法在所有测试用例下都能顺利通过吗?如果有空的话,可以再和大家分享一下题目具体的合并规则,或者你发现的那个“正解”的小技巧,我们一起讨论看看 🙂
加油,这种寻找规律的过程本身就很棒。期待看到你更多的分享呀。
0