leetcode刷题本地调试模板(C++)

leetcode刷题本地调试模板(C++)

力扣刷题的过程中,测试平台已经封装好了所有的输入和输出,我们只需要编写核心部分的函数即可。这虽然带来了很大的方便,但是也让调试我们的代码成了一件比较尴尬的事情,想要调试一下还要购买会员,这实在是有点让人难以接收。基于此种情况,对于常用的数组、链表和二叉树,自己根据力扣给出的数据结构简单创建了对应的测试模板,只需要将自己的代码复制进去,添加需要的变量或者调用输出函数便可以轻松的构建出一个可以执行的程序,方便用于查看结果和调试自己的程序。

数组类

模板说明

数组主要涉及包含一维数组和二维数组,一般情况下数组的处理结果为整数,一维数组,二维数组,这里的数组包含字符串,因此只需要提供输入和输出的部分即可,输入部分直接使用vector变量存放对应的序列即可,输出部分给出了打印一维和二维数组的函数,可以直接调用。模板代码如下:

#include<bits/stdc++.h>
using namespace std;
void PrintVector(vector<int> nums);            //可以用于调用打印一维整形数组
void PrintMatrix(vector<vector<int>> matrix);  //可以用于打印二维整形数组
//在这里放入Solution类
//类开始

//类结束
int main(){
    //可以用于存放输入的样例
    vector<int> nums={};
    vector<int> nums1={};
    vector<int> ansnums={};
    vector<vector<int>> matrix={ {1,2},
                                 {3,4},
                                 {5,6}, };
    vector<vector<int>> matrix1={};
    vector<vector<int>> ansmatrix;
    Solution mysolution;                        //定义一个类的对象
    //根据需求自己编辑输出内容
    
    return 0;
}
//其他函数实现
void PrintVector(vector<int> nums){
    int size=nums.size();
    for(int i=0;i<size;i++){
        if(i) putchar(' ');
        cout<<nums[i];
    }
    putchar('\n');
    return;
}
void PrintMatrix(vector<vector<int>> matrix){
    int row=0,col=0;
    row=matrix.size();
    if(row) col=matrix[0].size();
    for(int i=0;i<row;i++){
        for(int j=0;j<col;j++){
            if(j) putchar(' ');
            cout<<matrix[i][j];
        }
        putchar('\n');
    }
}

模板演示

这里使用题目59.螺旋矩阵Ⅱ进行演示,这里仅仅给出class类和main函数的部分:

#include<bits/stdc++.h>
using namespace std;
void PrintVector(vector<int> nums);            //可以用于调用打印一维整形数组
void PrintMatrix(vector<vector<int>> matrix);  //可以用于打印二维整形数组
//在这里放入Solution类
//类开始
class Solution {
public:
    //指定四种运动模式,向下为x轴(行数),向右为y轴(列数)建立坐标系
    int dx[4]={0,1,0,-1};
    int dy[4]={1,0,-1,0};
    vector<vector<int>> generateMatrix(int n) {
        vector<vector<int>> ans(n,vector<int>(n,0));
        vector<vector<int>> visited=ans;
        int x=0,y=0,i=1,MODE=0;                 //初始化坐标和模式
        int num=n*n;
        while(i<=num){
            ans[x][y]=i++;                      //填充并标记
            visited[x][y]=1;
            int nextx=x+dx[MODE],nexty=y+dy[MODE];//计算下一个位置,如果下一个位置到达边界则转向(更换移动模式)
            if(nextx<0||nextx>=n||nexty<0||nexty>=n||visited[nextx][nexty]==1)
                MODE=(MODE+1)%4;
            x+=dx[MODE],y+=dy[MODE];            //确定下一个位置的坐标
        }
        return ans;
    }
};
//类结束
int main(){
    //可以用于存放输入的样例
    vector<int> nums={};
    vector<int> nums1={};
    vector<int> ansnums={};
    vector<vector&l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值