实践记录及工具使用 | 利用豆包MarsCode AI刷题解决实际问题

67 阅读3分钟

在现代编程学习过程中,刷题已经成为提升编程能力、掌握算法和数据结构的必经之路。然而,面对繁重的刷题任务,如何高效、系统地提升解题能力成为了许多学习者的难题。为了解决这一问题,人工智能技术的引入提供了新的解题思路。豆包MarsCode AI,作为一款智能编程辅助工具,通过自动化生成解题思路、代码实现及优化建议,成为了编程学习者的得力助手。

本文将通过实践记录和工具使用,探讨如何利用豆包MarsCode AI提升编程能力,并以C++代码实例展示其应用。

豆包MarsCode AI 是一款基于人工智能的刷题工具,具有以下核心功能:

  • 自动解题思路生成:AI 会根据题目要求自动生成解题思路,帮助学习者快速理解问题。
  • 代码实现和优化:提供完整的代码解决方案,并根据算法复杂度进行优化,提升代码效率。
  • 实时反馈和调试:对于编写的代码,AI 可以自动进行测试,提供实时的调试建议。
  • 题目推荐和个性化学习路径:根据用户的刷题历史和能力,智能推荐适合的题目,并构建个性化学习路径。

这些功能使得豆包MarsCode AI不仅适合初学者,也能帮助有一定基础的学习者进一步提升技能。

下面通过具体题目进行解释

问题描述

小U在一款挂机游戏中拥有n个英雄。游戏中有一种历练升级机制,每天可以选择两个英雄进行历练,如果两位英雄的等级相同,则他们的等级都不会改变。如果英雄等级不同,那么等级较高的英雄会增加1级,而等级较低的英雄则保持不变。

小U希望至少有一个英雄能够达到2000000000000000级,他想知道有多少英雄有潜力通过历练达到这个等级。


测试样例

样例1:

输入:n = 5 ,u = [1, 2, 3, 1, 2]
输出:3

样例2:

输入:n = 4 ,u = [100000, 100000, 100000, 100000]
输出:0

样例3:

输入:n = 6 ,u = [1, 1, 1, 2, 2, 2]
输出:3

通过MarsCode AI获得题目的思路如下

  1. 统计等级分布:首先统计每个等级的英雄数量。
  2. 判断潜力:对于每个等级,判断它是否有潜力达到2000000000000000级。具体来说,如果一个等级的英雄数量大于1,那么这些英雄可以通过互相历练不断增加等级。
  3. 计算结果:统计所有有潜力的英雄数量。

通过获得的思路写出如下代码解决题目

#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<iomanip>
#include<queue>
#include<stack>
#include<vector>
#include<set>
#include<map>
#include <functional>
using namespace std;
typedef long long int ll;
const int A=10e9+7;
 
int cmp(int x ,int y){
    return x<y;
}
 
int solution(int n, std::vector<int> u) {
    int i,ans=0,t=0;
    sort(u.begin(),u.end(),cmp);
    t=u[0];
    for(i=0;i<u.size();i++){
        if(u[i]!=t){
            ans=n-i;
            break;
        }
    }
    return ans;
}
 
int main() {
    std::cout << (solution(5, {1, 2, 3, 1, 2}) == 3) << std::endl;
    std::cout << (solution(4, {100000, 100000, 100000, 100000}) == 0) << std::endl;
    std::cout << (solution(6, {1, 1, 1, 2, 2, 2}) == 3) << std::endl;
}```