
算法
拉布拉多oop
这个作者很懒,什么都没留下…
展开
-
算法:求排列组合
package Algorithm.PailieZuhe;/** * Created by zs on 2019/7/30. * 求排列组合 * A = n * (n-1) * (n-2) ... *(n-m+1) = n! / (n-m)! * C = n(n-1)(n-2)...(n-m+1)/ m(m-1)...*1 = n! / m!(n-m)! * 求法:(1)写一个阶乘函...原创 2019-07-30 10:05:06 · 360 阅读 · 0 评论 -
算法:双指针:判断链表有环,求环的入口
1.判断一个链表是否有环 public boolean isHasCircle(Lnode head){ if(head == null)return false; Lnode p1 = head; Lnode p2 = head; while (p1 != null && p2 != null &&...原创 2019-07-27 19:49:12 · 445 阅读 · 0 评论 -
算法:动态规划0-1背包问题
有一个容量为 N 的背包,要用这个背包装下物品的价值最大,这些物品有两个属性:体积 w 和价值 v。定义一个二维数组 dp 存储最大价值,其中 dp[i][j] 表示前 i 件物品体积不超过 j 的情况下能达到的最大价值。设第 i 件物品体积为 w,价值为 v,根据第 i 件物品是否添加到背包中,可以分两种情况讨论:第 i 件物品没添加到背包,总体积不超过 j 的前 i 件物品的最大价值就...转载 2019-08-21 16:48:12 · 296 阅读 · 0 评论 -
算法:二分查找及其变种
二分查找的前提条件是序列是有序的!!时间复杂度log(n).1.正规二分查找,查找某个target需要注意的几个地方:(1) l <= h(2)找到直接返回,(3) 当前值 < target ,l = m +1; 当前值 > target , h = m - 1;public int findTarget(int[] nums) { int l=0...转载 2019-08-23 15:07:38 · 209 阅读 · 0 评论 -
算法:最短路径和最小生成树
1.最短路径有Dijkstra算法和Floyd算法图算法无权图BFS有权图 单原Dijkstra 或者Floyd有权图 多原Floyd 或者多次Dijkstra复杂度:Dijkstra:n^2, 查找min distance的时候开业改用堆排序或者PriorityQueue,复杂度降为nlognFloyd:n^3,空间复杂度 N的平方,d...原创 2019-08-26 17:28:58 · 449 阅读 · 0 评论