leetcode中,代码如何调试,创造本地运行环境

本文介绍了如何在LeetCode上进行本地调试,特别是针对链表和树的题目。通过自定义main函数构造输入数据,利用rand()生成随机数或手动输入来创建数据结构。对于链表,可以使用随机数生成数据;而对于树,如判断对称树的问题,需根据LeetCode的树表示方式手动输入数据。通过这种方法,即使在没有内置调试环境的LeetCode上,也能有效地进行代码调试和测试。
摘要由CSDN通过智能技术生成

初次接触leetcode,是我在一个招聘网站上看的,这个OJ真有那么厉害吗?

这几天在这个OJ上做了几道题,发现他的几个特点,1、题目不难(相对于ACM来说,我被ACM虐到至今无力),评判没那么苛刻,2、十分基础,从链表、树到动态规划等,都是非常基本非常经典的内容,相当的靠基本功,3、没有本地调试环境,直接在网站上提交,后台评判系统帮你完成程序输入、评判输出的功能,4、国内外业内认可,有很多人都刷满了,留下了非常多的优秀的示例代码,5、支持C++ 11的特性哦,一个auto关键字会让你爽大大的。

所以我认定这个OJ对巩固算法和数据结构的基本功,以及应付面试笔试有很大作用,决定开始刷题。初次刷体感到非常不适应,题目网页只需要class Solution,没有输入,也没有输出什么的,调试在哪里?后来我发现,没有条件,那就需要自己创造条件了。因为网上大部分都是解题提交的思路,不利于新手上路,所以我想写这么一个帖子,希望能对他人有所帮助,所以大牛莫笑呵呵。

好吧,如果有链表题,那么我们自己写main函数,首先去构造链表,然后去排序啦去反向了什么的,如果有树题,那么我们自己写main函数,去构造树,然后调试。

嗯,这里就需要这么几个要素:

1、程序输入的数据,就是用来构造链表、树的内容的数据,一个来源是rand(),使用随机数,另一个来源就是手动输入了。

在链表题中,由于我们只需要一些内容,来看看排序效果什么的,所以可以通过随机数来产生数据,代码(只写有关的头文件和语句)如下:

#include <stdlib.h>
#include <time.h>
int lt = time(NULL);
srand(lt);
int len = rand()%100;
int data = rand() % 100;
如此去产生随机数据

在树题中,比如有题目是判断是否是对称树(symmetric tree),那么我们希望手动输入树的数据为好,将树的节点内容以main函数参数输入给程序,执行时如 :

./symmetric_tree 123##5

这里的123##5是leetcode中的树的表示,其实就是按照满二叉树的按层遍历来构造的,123##5构造了如下一颗树,其中2的1的左右孩子是2、3,2的左右孩子是##,就是空,2 是一个叶子节点了,3的左孩子是5,右孩子是空,空就不用输入数据了。调试时,我们需要按照这种方式构造树。

  • 9
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值