- 博客(5)
- 收藏
- 关注
原创 剑指 Offer 03. 数组中重复的数字 -- 跳跃指针
题目描述在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 题解——跳跃指针官方以及网上普遍的解法都是对数组进行排序或者原地交换,这里给出一种不同的思路,供大家参考。因为nums中所有数字都在 0~n-1的范围内,这刚好是数组下标的范围,因此我们可以将数组看做一个链表,数组中每个数字就是
2020-08-08 17:01:44 199
原创 tarjan算法
tarjan算法简介tarjan算法是Robert Tarjan发明的求有向图强连通分量的算法,是一种基于深度优先搜索的算法,每个强连通分量是深度优先搜索树中的一颗子树。具体一点辅助数组算法中有两个标志用的数组:dfn[]与low[]dnf[]:深度优先搜索时的时间戳,记录每个点被发现时的时刻。low[x]:表示x所属强连通分量的树根节点。算法思想在我看来tarjan算法的本质就是...
2020-01-24 18:32:22 163
原创 最长递增子序列
最长递增子序列解法一:转化为最长公共子序列解法二:动态规划法解法一:转化为最长公共子序列首先将数组排序,最长递增子序列转化为最长公共子序列问题。设数组 { 3, 9, 7, 1, 5, 8 } 为 A对数组 A 排序,排序后的数组为 B = { 1, 3, 5, 7, 8, 9 }于是,求数组 A 的最长递增子序列,就是求数组 A 与数组 B 的最长公共子序列这个方法时间复杂度为 ...
2019-11-19 17:52:43 167
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人