![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
hoji_James
这个作者很懒,什么都没留下…
展开
-
删除链表中重复的结点
题目:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5import java.util.ArrayList;public class DeleteDuplication { public static class ...原创 2018-06-06 20:30:17 · 161 阅读 · 0 评论 -
从N个数中等概率打印M个数
题目:给定一个长度为n且"没有重复元素"的数组array和一个整数m,实现函数等概论随机打印array中的m个数。要求:1.相同的数不要重复打印2.时间复杂度为O(M),额外空间复杂度为O(1)3.可以改变array数组解题思路:解法的关键点是利用要求3改变数组array。打印过程如下:1.在[0, N - 1]中随机得到一个位置a,然后打印array[a]2.把array[a]和array[n ...原创 2018-06-06 20:37:05 · 401 阅读 · 0 评论 -
最小的k个数-O(nlogk)解法
题目:给定一个无需的整型数组arr,找到其中最小的k个数要求:时间复杂度为O(nlogk)解题思路:1.先建立一个含有k个数的大根堆,这个堆代表"目前选出的"k个最小的数,在堆里的k个元素中堆顶的元素是最小的k个数里最大的那个。2.接下来遍历整个数,遍历的过程中看当前数是否比堆顶元素小。3.如果当前遍历到的数比堆顶小,就把堆顶的元素替换成当前的数,然后从堆顶的位置调整整个堆,让替换操作后堆的最大元...原创 2018-06-06 20:46:48 · 998 阅读 · 0 评论 -
矩阵的最小路径和----由最小路径问题引入暴力递归到动态规划的优化
1.暴力递归求解问题的特点把问题转化为规模缩小了的同类问题的子问题 有明确的不需要继续进行递归的条件 有当得到了子问题的结果之后的决策过程 不记录每一个子问题的解2.动态规划求解问题的特点1.从暴力递归中来 2.把每一个子问题的解记录下来,避免重复计算 3.把暴力递归的过程,抽象成了状态表达 4.并且存在化简状态表达,使其更加简洁的3.例子:最短路径问题问题从暴力递归求解方...原创 2018-07-22 15:47:37 · 1374 阅读 · 1 评论