今天训练的题目有些难,我状态也不好,竟然会在水题上卡。开始我限度了A题,觉得很简单,数据量也不大,然后就开始直接暴力,等我写完了运行了一遍发现直接暴力会少一种情况。看到别的好多人都出题了,我就把A题先放了放,去做了B题,B题做的还是比较顺利的,出了B题之后我又回去看的A,发现直接做不行可以将字符串分成两半从前面取一个后面取一个进行配对,一共分四种情况。
做C题的时候真的是不知道为啥,莫名其妙被卡。我想的方法是用两个数组分别记录前i项大于等于0的数的个数和后i项的小于等于0的数的个数。然后用一重循环枚举每个位置需要的步数,取最小值即可。样例过了但是就是一直WA,后来才知到,i=1和i=n的边界条件需要特判,不能直接加。
今天白天主要是把链表邻接表还有hash算法看懂了大概。链表就是把所有的元素放到一个数组里,建立上下的联系;或者是用指针模拟。邻接表就是对链表的一种分组,可以用来解决图论问题。Hash是自定义一个函数,将原问题中的数值或者字符,转化成自定义的数值,以便于计算比较。Hash一般用来解决字符串问题。