第五题似乎有问题呀。我自己看感觉是看懂你的思路,但是你的代码细节应该有问题。
我理解的思路是 每次选一个做开始节目,然后根据选择第一个节目的时间进行调整最后的期限(也就是和其他不同的地方所在),不满足期限直接break。第一个j表示开始的节目,第二个i表示从j开始的节目算起的节目数。  
不知道我的理解对不对?
然后就是

10
0 3 3 7 7 0
return 3
这个测试用例就没通过。