![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
对算法的一些理解
oftt
这个作者很懒,什么都没留下…
展开
-
LinkedList的源码解析
看到 LinkedList 的内部类 Node,我们可以知道,它的底层是双向链表结构。 // 内部类 private static class Node<E> { E item; Node<E> next; Node<E> prev; Node(Node<E> prev, E element, Node<E> next) { this.item = element; this.ne.原创 2021-06-19 11:44:28 · 84 阅读 · 0 评论 -
常见的几种排序算法(待完善)
快速排序 public void quickSort(int[] nums, int l, int r) { if (l >= r) { return; } int mid = partition(nums, l, r); quickSort(nums, l, mid - 1); quickSort(nums, mid + 1, r); } //填坑法 public int patition(int[] nums, int l, int r) {原创 2021-06-19 10:50:22 · 71 阅读 · 0 评论 -
快速幂的实现
所谓的快速幂,是指手动实现幂运算。 public double myPow(double x, int n) { double res = 1.00; for (int i = n; i != 0; i /= 2) { if (i % 2 != 0) { res *= x; } x *= x; } return n < 0 ? 1 / res : res; } 解释:for 循环运行的次数为 i原创 2021-06-19 10:47:33 · 71 阅读 · 0 评论 -
回溯算法题的解题思路
做题的时候,建议 先画树形图 ,画图能帮助我们想清楚递归结构,想清楚如何剪枝。拿题目中的示例,想一想人是怎么做的,一般这样下来,这棵递归树都不难画出。 在画图的过程中思考清楚: 分支如何产生; 题目需要的解在哪里?是在叶子结点、还是在非叶子结点、还是在从跟结点到叶子结点的路径? 哪些搜索会产生不需要的解的?例如:产生重复是什么原因,如果在浅层就知道这个分支不能产生需要的结果,应该提前剪枝,剪枝的条件是什么,代码怎么写? 作者:liweiwei1419 来源:力扣(LeetCode) ...原创 2021-05-12 18:45:48 · 114 阅读 · 0 评论