![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 79
程序员bling
心之所向,素履以往
展开
-
时间轮算法HashedWheelTimer
让你眼前一亮的Timer, 这种思想绝对值得学习原创 2022-12-08 23:47:39 · 4663 阅读 · 0 评论 -
尾递归
当递归调用是方法中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归。 尾递归的特点是在返回时直接传回原始的调用者,而不用经过中间的调用者,这个特点很重要,因为大多数现代的编译器会利用该特点自动生成优化的代码。 使用尾递归代替普通的递归,可以在时间和空间方面都带来显著的提升。原创 2021-03-13 18:31:27 · 250 阅读 · 0 评论 -
二叉树中和为某一值得路径
二叉树中和为某一值得路径剑指offer 第25题题目描述:思路:该题也是一个典型的回溯算法的题.但是比较特殊的是有两个递归.所以两个递归的话就要删除两次,减枝两次.但是注意只需要加一次,因为删除的是后面递归的.加的是当前节点的.具体代码:private static ArrayList<ArrayList<Integer>> res=new ArrayLis...原创 2020-02-09 19:36:25 · 121 阅读 · 0 评论 -
全排列-回溯法
全排列 leetcode第46题题目如下(该题在剑指offer中也有,比较经典):思路:很典型的回溯算法题.可以直接套框架, 逻辑就是最前面的值依次和后面的值交换,然后第二个值再依次和后面的值交换,依次递归到末尾注意:什么时候能加入到最后的list中? index代表遍历节点的下标, 只有当index==nums.length-1时,才能加入到list中,为什么?因为前面的交...原创 2020-01-31 23:02:06 · 386 阅读 · 0 评论 -
有效的数独-位运算(详细解释)-只需遍历一遍数组
leetcode 第36 题 , 题目如下,所示.分析: 该题需要判断每一行,每一列,每一块是否有重复数字,最容想到的就是分别写代码去判断每一行,每一列是否有重复数字,用一个数组做存储容器,出现的数字作为数组的下标,出现为1,没有出现为0,这样在O(1)的时间内就可以知道数字是否重复,但是这样写代码比较冗余,需要遍历三遍,那能不能只遍历一遍呢?当然可以.思路:1 , 抛弃刚刚所想...原创 2020-01-26 23:23:33 · 908 阅读 · 0 评论 -
三数之和问题 排序加双指针
Leetcode 第15题.题目,如图所示.本题采用排序加双指针的解法.原创 2020-01-21 22:52:26 · 216 阅读 · 0 评论 -
z字形变换 最优解 (字符串)
LeetCode第六题题目,如图所示.原创 2020-01-21 22:10:16 · 298 阅读 · 0 评论 -
反转链表(java实现)
本篇文章,通过画图的形式,再加上详细的代码注释,让你很容易的实现反转链表. 与链表相关的问题总是有大量的指针操作,而指针操作的代码总是容易出错的,所以很多笔试,面试都有与链表相关的题目,就是想通过指针操作来考察其编码功底,当然,为了避免出错,在我们写代码之前应该进行全面的分析.原创 2019-09-22 21:33:38 · 1173 阅读 · 0 评论 -
斐波那契数列的第n个数(解决简单递归带来的效率问题)
剑指offer第9题说起斐波那契数列,大家应该都很熟悉,并且很多人都能很熟练的写出递归代码.如下,代码可谓很简洁 public static int fabonacci(long n) { if(n<=0) return 0; if(n==1||n==2) return 1; return ......原创 2019-09-20 21:54:57 · 4868 阅读 · 0 评论 -
根据二叉树中的前序(先序)遍历和中序遍历输出后序遍历(java实现)
剑指offer第六题题目:根据二叉树的先序遍历和中序遍历,输出后序遍历要想解决这道题,需要先了解二叉树先序输出和中序输出,后序输出的特点,java代码,简单易懂原创 2019-09-07 17:13:23 · 11683 阅读 · 0 评论 -
查找二维数组中的数(java版)
剑指offer第三题.题目:在一个二维数组中,每一行都是按照从左到右的递增顺序,每一列也都是按照从上到下的递增顺序,构造一个函数,输入二维数组和一个数,判断这个数组中是否包含这个数.java实现,极解代码原创 2019-09-06 21:59:39 · 295 阅读 · 1 评论 -
对堆排序有疑虑?只需五步,彻底搞定堆排序(详细解释)
对堆排序有疑虑?只需五步,彻底搞定堆排序:在说堆排序之前,首先应该明确一些概念:一.概念:1.完全二叉树: a.从作为第一层的跟开始,除了最后一层外,第N层的元素的个数,都必须是2的N次方. b.最后一行的元素,必须从左边开始放,且中间不能有空格. 说明:满足这两个特点的二叉树就是完全二叉树.2.最大堆: 在满足完全二叉树的条件下,每个父节点的值都大于其子结...原创 2019-05-30 09:19:52 · 878 阅读 · 2 评论