Skip to content

houfm/SUSTech_CS203_data_structure_and_algorithm_analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CS203 data structure and algorithm analysis

南方科技大学数据结构与算法分析课程资料

basic information

  • instructor: 唐博 沈昀
  • semester: 2022 FALL

repository content

lab:lab课作业的代码

lecture:理论课课件

tips

lab

  • 对难题不用太死磕。如果lab题里面有的题实在麻烦或者做不出来(一个lab最多一个,不然可能bonus lab也不够用),一般这些题沈老师都跟大家讲清楚。建议如果没有想法就不用非得强迫自己,可以用最后的bonus lab去补这些分数。一般bonus lab里面的题目会有一些比较简单的、大部分人都可以做出来的题目。

  • 课程后面的题目会很花时间,在开始写之前最好都想清楚,然后用一个比较大的整块时间一次写好。虽然对于复杂的逻辑,在写之前想清楚可能比较花时间,但是边写边想可能会导致在写的过程中代码越来越乱。

  • 一个bug如果调了几个小时也没有发现问题,建议先停一段时间再看,或者问一下ta,sa或者和同学交流一下,不建议自己不停看,因为可能陷入了某种思维定式。

  • 建议会写的题目都尽量早写。

    • 这样的话,如果有一直de不出来的bug,可以在ddl之前一周的课上可以请sa,ta老师帮忙de,感觉线下交流的效率会比较高一些,看代码也比较方便。
    • 同时,压到最后也会比较紧张,容易自己花大块时间不停debug,陷入思维定式。
  • 虽然沈老师一般在讲题之前会先说一下题干大概是什么意思,但建议还是在上课之前提前先看一下,至少先读一下题,最好也先自己想一下。

    • 因为后期有一些题目的题干可能有些复杂,有点时候可能不能在第一次听之后就马上理解需要实现什么功能,尤其是沈老师一般说得也比较快。
    • 而且如果题干是什么意思没听懂,那一般后面的讲解也会跟不上。
  • 常见问题:

    • 注意答案的数据范围。long了吗?

    • 注意循环中的序号使用:i, j, k。看清现在在哪一层,要用哪个,不要用错。

    • 注意Java中的方法是都是值传递(pass-by-value),没有引用传递。对于对象是地址的值传递

    • 不要在循环中反复开可以多次利用的数组,影响时间。

    • 不要乱用arrayList中的方法。如add,在实现时会开一个更大的数组,把之前的小数组放进去,然后再加上新加入的。

    • 不要多次String类字符串拼接。

    • 用快读快写。

    • 特殊样例:重复数字,负数,0。

    • 输出的格式:是否有空格,字符请直接复制样例的输出。

    • 如果数据范围给的是绝对值,考虑是否有负数。

    • 递归要有base case,注意死循环。

    • 有一些语句写的时候要注意顺序,可能看起来哪一句在前都可以,但实则不然。

理论课

  • 由于有bonus lab的缘故,所以虽然平时lab花的时间比较多,但个人感觉课程分数的差距主要出在理论考试上,包括quiz,midterm还有final,所以考前一定要好好复习一下。
  • 一般考试之前唐博老师会把一些前几年的题目发给大家供参考。
  • quiz第一次会比较难,第二次就会相对简单。
  • 个人感觉如果希望理论考试得到一个比较好的分数,同时之前没有学习过竞赛的话,最好在lab课的题目之外再自己练习一些题目。因为在理论课考试中也会有一些写代码/伪代码的题目,而且占得个人感觉也不是很少。

About

南方科技大学数据结构与算法分析课程资料: lecture note and lab codes

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages