力扣执行代码和提交报错
Line 30: Char 17: error: use of undeclared identifier 'Solution'
int ret = Solution().numWays(param_1); return ret;
它报错第30行,可我的代码只有19行
代码在编译器上运行能正确输出,但是力扣不行,选的C++
复制题解正确答案来提交,也报错
error: excepted ":" public int numWays (int n)
求解释,力扣第一次提交,直接不行,是力扣有什么特别的要求吗
网上查,说是全局变量不能声明,只能局部,我就改了局部,
还有说没有初始化,我检查了一遍全部声明初始化了
就是原编译器能过,就力扣不行,提交什么都不行
首先,leetcode是核心代码模式,区别于ACM,蓝桥杯牛客或者本地编译器的代码,本地编译器比如codeblocks,Dev C++,visual Studio code等,你需要写头文件,需要输入输出,而leetcode不需要,拿我上面的代码来说,第一个问题是,没按核心代码模式,把头文件这些也都写上了,这在编译器可以输出,但leetcode直接编译错误。第二点,我改成核心代码后,执行代码里所有测试样例都能过,但是提交代码只过了一个或者一部分,这是为什么呢,在我的代码里是因为多了cin,leetcode不需要处理输入输出的,这会影响下一个测试用例
所以,本代码通过转变为核心代码,再删掉cin就提交通过了,还得去掉int n的声明,它一开始帮你声明了。
还要注意一个点,网上说,leetcode不要声明全局变量,而且如果声明了类内静态变量,要初始化,否则也会影响下一个测试数据,浪费我3小时
letcode有他的答题格式,你按照他给你的格式填写,就可以了,C++ 一般是
class solution{
T somefunc(){
//这里就是你要填空的代码。
}
}
你把代码发过来看一下