采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
如果使用C语言解决这个问题的话,那么该如何得到graph[v]的元素个数呢? 如果我这样写的话
int size = 0; while (graph[v][size] >= 0 && graph[v][size] < graphSize) size++;
在ide中是可行的,但是leetcode中有AddressSanitizer,就会报heap buffer overflow的错误。
如果你确定是这个点的问题的话, 基本上是有数组越界的问题。C/C++编译器不对数据越界做额外检查,Leetcode的编译器有额外检查。
如果你确定是这个点的问题的话,确认一下每次调用 v 和 size 都是合法的索引值。
继续加油!:)
bobo老师,我知道是数组越界的问题。如果使用C写这题的解题代码的话,leetcode提供的函数是这样的: bool isBipartite(int** graph, int graphSize, int* graphColSize){} 通过graphSize我可以知道图有几个节点,graph[v]代表的意思是与v相连的节点,可是我不知道graph[v]的元素个数,C语言中也没有graph[v].size(),就遍历不了graph[v],我写问题中的代码,就是为了判断graph[v]有几个元素,最后就会报数组越界的错误。 刚才再看这个函数,发现isBipartite函数中最后一个形参,graphColSize,才突然明白Col是column的意思,graphColSize存储的是就是节点v的相邻节点的个数,开始做题时,先入为主的认为Col是color的意思,就以为这个数组graphColSize与课程中二分图检测的数组color作用是相同的,哈哈。
大赞!继续加油!:)
登录后可查看更多问答,登录/注册
30+小时系统学习,bobo带你克服被图论支配的恐惧
965 10
1.4k 9
1.6k 7
529 7
939 6