我的代码,有佬告诉我哪错了吗

static long max=0;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num= sc.nextInt();
int packages = sc.nextInt();
ArrayList<int[]> list = new ArrayList<>();
for (int i = 0; i < packages; i++) {
int i1 = sc.nextInt();
int i2 = sc.nextInt();
int bonus = sc.nextInt();
list.add(new int[]{i1,i2,bonus});
}
dfs(list,0,0,0);
System.out.println(max);
}
public static void dfs(List<int[]> points, int end, int n, int sum){
if(max<sum){
max=sum;
}
if(n==points.size()){
return;
}
int[] nums = points.get(n);
if(nums[0]>=end) {
int tmp = nums[1] - nums[0] + nums[2];
sum += tmp;
dfs(points, nums[1],n + 1, sum);
sum -= tmp;
}
dfs(points,end,n+1,sum);
}