LeetCode的提交模式和许多acm/oj网站不同,它会提供一个解决问题的class,将你提交的解决问题的代码封装起来,大部分的库函数和输入输出都已经隐藏起来。以一道简单的Two sum为例,这样提交的优点也是显而易见的,不用去考虑繁琐的输入输出问题,可以更加聚焦于算法的实现和问题的解决,但是由于我习惯用数组,而LeetCode上大多时候默认的返回类型是vector,所以不适感很强烈:)
要点(以Two sum为例)
1. 自定义的cmp函数必须是static
2. 需要更加熟练掌握vector的应用
class Solution {
public:
vector<int> ans;
struct Data{
int num;
int N;
}DATA[20000];
int tot=0;
static bool cmp(Data a,Data b){
return a.num<b.num;
}
int find_data(int a,int s){
int l=a+1,r=tot-1;
int mid=(r+l)/2;
while(mid!=tot+1&&DATA[mid].num!=s&&l<r){
if(s<DATA[mid].num)r=mid;
else l=mid+1;
mid=(r+l)/2;
}
return mid;
}
vector<int>