鱼C论坛

 找回密码
 立即注册
查看: 1195|回复: 9

[已解决]剑指offer的开头

[复制链接]
发表于 2020-2-25 22:10:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
为什么每次这样开头呀?为什么不用#include<iostream>这相当于在编译器的啥?
class Solution {
public:
最佳答案
2020-2-26 19:55:12
因为你这只是定义一个Solution类,剑指offer的验证程序才是main函数,它会实例化你定义的Solution类作为问题的解决方案。也就是每个问题的main函数已经写好了,包括测试集的读取,Solution类实例化,测试结果对比,结果输出等等,你只需要提供Solution类的实现就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-26 19:55:12 | 显示全部楼层    本楼为最佳答案   
因为你这只是定义一个Solution类,剑指offer的验证程序才是main函数,它会实例化你定义的Solution类作为问题的解决方案。也就是每个问题的main函数已经写好了,包括测试集的读取,Solution类实例化,测试结果对比,结果输出等等,你只需要提供Solution类的实现就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-27 13:16:56 | 显示全部楼层
major_lyu 发表于 2020-2-26 19:55
因为你这只是定义一个Solution类,剑指offer的验证程序才是main函数,它会实例化你定义的Solution类作为问 ...

老哥,可以写一下剑指offer的main函数吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-27 15:26:07 | 显示全部楼层
松鼠呀 发表于 2020-2-27 13:16
老哥,可以写一下剑指offer的main函数吗

每个问题的main函数不一样的,所要度读取的测试集是不一样的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-27 20:47:38 | 显示全部楼层
major_lyu 发表于 2020-2-27 15:26
每个问题的main函数不一样的,所要度读取的测试集是不一样的。

大佬,方便的时候可以写下这道题吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-27 22:53:00 | 显示全部楼层
松鼠呀 发表于 2020-2-27 20:47
大佬,方便的时候可以写下这道题吗?

那道题?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-28 10:23:47 | 显示全部楼层

从上往下打印出二叉树的每个节点,同层节点从左至右打印
class Solution {
public:
vector<int> PrintFromTopToBottom(TreeNode* root) {
  vector<TreeNode> v_in;
  vector<int> v_out;
  if (root==NULL)
  {
   return v_out;
  }
  v_in.push_back(*root);
  while (!v_in.empty())
  {
   TreeNode t1 = v_in.front();
   v_in.erase(v_in.begin());
   if (t1.left!=NULL)
   {
    v_in.push_back(*t1.left);
   }
   if (t1.right != NULL)
   {
    v_in.push_back(*t1.right);
   }
   v_out.push_back(t1.val);
  }
  return v_out;
}
};
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-28 15:43:33 | 显示全部楼层
本帖最后由 major_lyu 于 2020-2-28 15:44 编辑
松鼠呀 发表于 2020-2-28 10:23
从上往下打印出二叉树的每个节点,同层节点从左至右打印
class Solution {
public:


这就是二叉树广度优先遍历啊。
好好看一看二叉树遍历方式和原理。


class Solution {
public:
    vector<int> PrintFromTopToBottom(TreeNode* root) {
        vector<int> v_out; // 存放输出结点值
        queue<TreeNode*> que; //存放待输出的结点队列
        if (root == NULL)
            return v_out;
        que.push(root);
        
        while (!que.empty())
        {
            TreeNode* node = que.front(); //取出队首结点
            if(node->left) que.push(node->left);  //将左结点入队
            if(node->right) que.push(node->right); // 将右结点入队
            v_out.push_back(node->val); // 队首结点值放入输出容器
            que.pop();//队首结点弹出
        }
        return v_out;
    }
};
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-29 18:21:29 | 显示全部楼层
major_lyu 发表于 2020-2-28 15:43
这就是二叉树广度优先遍历啊。
好好看一看二叉树遍历方式和原理。

可以加一下库函数吗?#include<iostream>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-29 19:04:46 | 显示全部楼层
本帖最后由 major_lyu 于 2020-2-29 19:07 编辑
松鼠呀 发表于 2020-2-29 18:21
可以加一下库函数吗?#include


剑指offer的测试环境中已经帮你加好了。Solution类的实现放在对应的问题给出的输入框不就行了。

没有必要自己写测试文件。你难道是想要在本机进行调试?


我不太喜欢剑指offer,题目描述有的不是很清楚。
你要刷题可以去leetcode.
而且leetcode还可以在visual studio code中使用,不用打开网页就可以刷题

参考这个配置一下就可以了
https://www.jianshu.com/p/19603d27b8c6

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 00:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表