摘要: 题目: 思路: 思路一:直接利用快速排序的方法对数组进行排序,时间复杂度为O(NlogN),简单便捷,排完序之后便是有序的数组,直接去前K个数出来 思路二:根据一次快排(Partition)的想法,我们知道一次随机快速排序可以确定一个有序的位置,这个位置的左边都小于这个数,右边都大于这个数,我们如果 阅读全文
posted @ 2020-12-10 17:12 忧愁的chafry 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 题目: 思路: 斐波那契数列的核心就是F(N) = F(N-1) + F(N-2),一般看到的都会采用递归,但是如果使用循环来实现且进行对比,容易发现不少对真是性能的影响 如上面的采用循环运行时间大大的小于下面用递归实现的运行时间。这种有点类似于插入排序算法的不同实现,每次都换位置的话效率如同冒泡, 阅读全文
posted @ 2020-12-10 17:10 忧愁的chafry 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 题目: 思路: 操作一:定义了两个变量来记录,A一个一次走一步,B一个一次走两步,如果有环B必然会追上A。如果无环B必然会先遍历完。 操作二:定义了一个哈希集合来记录节点指针的哈希值,因为java中对于这8种基本数据类型的变量,变量直接存储的是“值”。而对于非基本数据类型的变量,在一些书籍中称作为 阅读全文
posted @ 2020-12-10 17:09 忧愁的chafry 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 题目: 思路: 这从该题观察可以的得出需要 一 一 对应匹配且({)}这种是不符合的,所以根据栈的先进后出的方式,凡是碰到一个左边的括号就自动将右边的括号放进一个栈内,等碰到不是左边的括号的时候就进行比对,看两个右边的括号是否相等,如果不等则顺序不符合,且到了最后顺便检查一下栈是否用空了,没有用空就 阅读全文
posted @ 2020-12-10 17:07 忧愁的chafry 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 题目: 思路: 遍历法 操作: 准备两个空节点pre与next 判断当前的头结点是否为空,若不为空进入循环 将头结点的下一节点取出赋值给next节点 然后将头结点的下一节点指向pre(然后将当前头结点的指赋值给pre,因为java没有指针,这种赋值的方式不会改变内部的指针指向,即head的操作实际第 阅读全文
posted @ 2020-12-10 17:05 忧愁的chafry 阅读(100) 评论(0) 推荐(0) 编辑