今天就很难受,今天早上时候先看了一会Java,然后准备开始刷题。这个题是一个最短路径的变式题,在我有了思路之后开始写。
但是由于此题城市从1开始,我在初始化数组的时候初始化到了N,也就是数组越界了,导致我的某一个数组出现异常。我当时以为是我的迪杰斯特拉算法写错了,然后我与模板进行对比,没有找到错误,然后断点排bug,找到bug所在区域,但是没看出来具体在哪。之后问了学长,才发现了这个错误,但是我一早上时间都耗费在这上面了,以后我在小心敲代码,尽量不犯这种错误的同时,还要注意时间的把控,避免像今天这样浪费时间的情况发生。遇到有问题写不出的,先跳过干其他的,在回来看看这题。
下午的时候,因为明天要交数据结构的博客,总结了一下之前所学的栈、队列等数据结构,并分别写了博客,有些数据结构博客之前写过了,重新在补充了一点内容:
- 关于树的几种表现形式:双亲表示法,孩子表示法,孩子兄弟表示法。因为之后的图中表现形式与之有点关联,所以重新总结了一下。
- 学会了领接表的结构。
在之后我继续看《Head First Java》,弄清楚了封装等问题,在之后我补了cf一道题目
当时打cf时,没有想到直接去暴力模拟解决,导致直接爆零,以后要先考虑暴力能不能写出来,在考虑思维。
晚上九点半,我又将大一测试的题目补了一道,这个题是一个贪心的题,我测试的时候没有写出来,我应该多多练习贪心与动态规划的题型,错两次是因为没有注意sum的数据范围,以后需要注意。
今天的Java笔记
实例变量与局部变量的差别:
- 实例变量是声明在类中,而不是方法中,并且会有个初始值。
- 局部变量是声明在方法中,不会有初始值。
- 如果初始化局部变量前被使用,会直接报错。局部变量使用前必须初始化。
变量的比较
- ==可用来判断两个引用是否指向同一对象
- ==可用来判断两个引用是否指向同一对象。如果要判断两个对象是否在意义上相等需要用到equals函数。
总而言之,今天效率很低,以后要避免被一道题卡死的情况。