刷题 | 关于理解题意(看不懂>_<)

1.

https://leetcode-cn.com/problems/range-sum-query-2d-immutable/

然后给的模板是:

第一反应就是懵嘛,解题思路很简单:1.处理给定的matrix 2.每次输入两个角就计算输出;但是!构造函数虽然是引用传递,可以直接处理matrix,但sumRegion函数得用到这个matrix啊,现在这个NumMatrix类里面并没有matrix,那....?

思路:(先看给的注释说明)

1.主函数会创建一个对象,创建对象的时候调用构造函数,会把matrix传进去进行操作;

2.这个对象需要调用sumRegion成员函数,每次调用就输出一个值;

.....所以这个对象需要自己有一个matrix,要不然sumRegion的参数只有四个点

3.因此,在class里面建一个public对象 vector<vector<int>> new_matrix,调用构造函数的时候就把这个new_matrix填满

然后正常写就好了


2.

https://leetcode-cn.com/problems/NaqhDT/

 

给的模板:

题目描述:

  • CBTInserter(TreeNode root) 使用根节点为 root 的给定树初始化该数据结构;

思考过程:

1.给定树!也就是说树已经构造好了,那么CBTInserter这个构造函数就不用去构造树了

2.既然构造函数不用构造树,思考构造函数应该干啥,也就是思考insert函数缺啥

3.insert函数应该是层序遍历这个树,找到第一个缺少孩子的节点,把改node插进去成为其孩子。但是问题是,CBTInserter这个类不用构造树,也就是这个类的对象是不含树的(当然也不含根节点),那就不能通过根节点去遍历。所以insert函数缺的是用于层序遍历的东西————显然,就是用于层序遍历的队列,并且这个队列应该是已经按照层序遍历放满节点了的

4.所以构造函数要做的就是创建这个队列,并且用层序遍历给他填满!当然,insert函数不能用队列遍历因为队列会pop,所以其实应该用vec下标来遍历,那么就是构造函数再新增一个vec并填满

5.因此,在这个类里增加两个变量:queue<TreeNode*> q; vector<TreeNode*> vec;

6.原来如此!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值