![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
小阿V
Java, 大数据
展开
-
关于单向链表的有环判断
单向链表是否有环,目前从其他博文中看到两种方式: 1. 双层遍历 若从前向后遍历,当链表有环时,会陷入死循环。因此应从头节点开始,外层循环向后遍历,内层循环由当前节点 p 向前遍历,当遍历过程中发现某节点 q 与当前节点的下一节点相等,即 q == p.next 时,说明有环(因为无环的话,一个在前一个在后不可能相等),且 p.next 节点即为环入口。 2. 快慢双指针 快指针每次移动两...原创 2018-09-08 02:50:30 · 282 阅读 · 0 评论 -
[Java] 两种方式实现动态规划之 0-1 背包问题
  首先感谢 刘永辉、从杰 及 Arun-Manivannan 的帮助,感谢未提及的朋友的慷慨解答与代码实现。本文思想及代码亦从上述而来,但目前看到的”0-1 背包”代码实现较为单一,故赘述总结一下。方法一:public class ZeroOnePack { public static void main(String[] args) throws Exc...原创 2018-09-05 22:49:49 · 865 阅读 · 0 评论 -
[Java] 找出两有序数组第 k 大的值
目前看到题目的解法,大多为 C++ 实现 ,且有些代码不完善,故在此赘述。总的来说,主要有以下 3 种方式:a: 合并数组后排序b: 两指针遍历并计数c: 二分法分析假如两数组长度分别为 m 和 n (且让 m < n),求第 k 大的数,以上 3 种方式中: a 时间复杂度为视排序算法而定,因此处数组有序,故归并排序最为方便,但时间复杂度为 O((m+n)lo...原创 2018-09-10 01:39:00 · 1360 阅读 · 1 评论