力扣双指针刷题小结
数据结构和算法基础不扎实,如今重新开始学,事实证明刷题看题解与看书相结合能够有效提高学习效率,虽然对我来说真正有效的是现实的毒打(。
除第一天是二分查找外,到第五天的题目都是双指针。
- 有序数组的平方
- 轮转数组
- 移动零
- 反转字符串
- 反转字符串中的单词 III
- 链表的中间结点
- 删除链表的倒数第N个结点
困难程度显示简单或中等,虽然我其实也抄了很多作业(
双指针的意义在于两个指针之间的间距,这一点之前没有理解到,简单粗暴的沿用二分法的取中位数的思路,导致在《删除链表的倒数第N个节点》始终不得要领,后面看题解才领悟到,依此题意,两个指针的间距即是 N 这个数字。同时也理解到,链表操作时,弄一个哑节点 dummy 指针更方便操作,即 dummy=ListNode(0,head) 这种。
但是因为都用的 python3 作为答题语言,我对那些事实上非常绕的底层操作还是没有理得很清楚,看到有人说是语法糖陷阱,深以为然。不过至少目前来讲,我连这么方便的语法糖也没完全掌握啊还学什么底层
总之还是继续努力了,顺便体会到了刷题的乐趣,可能是因为没以前焦虑了,虽然还是菜鸡,但至少经过社会毒打已经无所谓了(不是