随笔分类 -  Github刷题笔记

摘要:一.关于链表(java) 1.一般用Java的ListNode建立链表结构; 2.一般问题涉及头结点的判断,我们通常会再定义一个虚拟头结点,逻辑上就多出一个头结点,真正的头结点成为第二个节点(index=1),这样我们就可以判断头结点; 3.在解决问题过程中,我们通常会另外定义一个类似指针的移动节点 阅读全文
posted @ 2021-10-05 22:23 Liveforlove 阅读(22) 评论(0) 推荐(0)
摘要:利用快慢指针解决数组对值进行改变的问题 1.实质上就是对于一个需要满足的条件时,就进行慢指针不移动,一旦不满足条件时,比如不等于指定的一个值,就进行值的变化以及慢指针的移动,最终实现低复杂度的问题解决。 2.适用于不使用额外的数组空间,需要低复杂度的数组值变换问题。 阅读全文
posted @ 2021-09-18 23:50 Liveforlove 阅读(27) 评论(0) 推荐(0)
摘要:1.二分法:为了优化内存消耗,可以先定义一个数来存储中间值(mid),避免每次在判断的时候都需要从数组中去取出中间值。 阅读全文
posted @ 2021-09-13 22:52 Liveforlove 阅读(25) 评论(0) 推荐(0)
摘要:1.快速排序(对n个数进行排序) 1)一趟快速排序:首先是有一个key,i和j,初始key等于最左边的A[0],i=0,j=n-1;先从右到左找到第一个比key小的数(A[j]),然后A[j]和A[i]互换,再跳到左边,从左到右找到第一个比key大的数,然后再互换A[i]和A[j];一直循环下去,直 阅读全文
posted @ 2021-09-13 10:04 Liveforlove 阅读(47) 评论(0) 推荐(0)