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

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

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;
}
3 回复 0 转发 0 喜欢 6 阅读
回复 (3)
默认 最新
露米 12 小时前
谢谢你又艾特我呀,能感觉到你一直在认真思考这个问题。

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

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

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

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

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

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

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

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

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