![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
单线程的Daniel
程序员养成之路
展开
-
无序数组排序后的最大相邻差
/** * 无序数组排序后的最大相邻差 */ public class MaxDis { public static int getMaxSortedDistance(int[] array){ //得到数组的最大值和最小值 int max=array[0]; int min=array[0]; for(int i=1;...原创 2020-01-05 19:16:36 · 185 阅读 · 0 评论 -
最小栈的实现
import java.io.InputStream; import java.util.Stack; public class minStack { private Stack<Integer> mainStack=new Stack<Integer>(); private Stack<Integer> minStack=new Stack&...原创 2020-01-05 17:23:12 · 90 阅读 · 0 评论 -
求链表是否有环,以及环的长度 和入环节点
public class ISCycle { private static class Node{ int data; Node next; public Node(int data){ this.data=data; } } /** * 判断单链表是否有环 * @...原创 2020-01-05 17:00:27 · 179 阅读 · 0 评论 -
优先队列的实现
最大优先队列:无论入队顺序如何,都是当前最大的元素优先出队 最小优先队列:无论入队的顺序如何,都是当前最小的元素优先出队 优先队列的实现需要借助一下二叉堆的特性: 1.最大堆的堆顶是整个堆中的最大元素 2.最小堆的堆顶是整个堆中的最小元素 以最大优先队列为例,我们可以用最大堆来实现最大优先队列,这样的话,每一次入队操作都是堆的插入操作,每一次出队操作都是堆的删除操作。 入队操作: 1.插入新节...原创 2020-01-05 15:45:22 · 584 阅读 · 0 评论 -
二叉树的前序遍历 中序遍历 后序遍历 层次遍历的递归与非递归实现
二叉树的前序遍历 中序遍历 后序遍历 层次遍历的递归与非递归实现原创 2019-12-30 10:42:42 · 149 阅读 · 0 评论 -
求树的深度(递归和非递归实现)
import java.util.ArrayDeque; class TreeNode{ int data; TreeNode left; TreeNode right; } public class DepthOfBinaryTree { /*** * 递归实现 * @param root * @return */ ...原创 2019-12-30 09:35:28 · 1047 阅读 · 0 评论 -
栈的数组和链表实现(Java)
首先用接口来定义一些常用的操作 public interface stack<T> { boolean isEmpty(); //判空 void clear(); //清空 T pop(); //弹出 void push(T data); //压入 int getLength(); //返回长度 T peek(); ...原创 2019-12-27 11:28:25 · 103 阅读 · 0 评论 -
循环队列的数组实现方式与链表实现方式
假设front指向队列的头部,rear指向队列的尾部。 则队列满的条件是:(rear+1)%QueueSize==front 则队列为空的条件为:rear==front 通用的计算队列长度的公式:(rear-front+QueueSize)%QueueSize 则队列的数组实现如下: private int[] array; private int front; private int rea...原创 2019-12-27 10:26:40 · 530 阅读 · 0 评论 -
在无序数组中寻找两个出现奇数次的数
/** * 一个无序数组里有若干个整数,只有2个整数出现了奇数次,如何找到这2个出现奇数次的整数 * 解法:把2个出现奇数次的数命名为A和B,那么遍历整个数字进行异或,那么最终的异或 * 结果就是A和B的异或结果。在这个结果中,至少有一位会是1(如果都是0,则说明A和B相同 * ,则和题目不符)。 * 假设A和B中位为1的是第三位。则可以判断A和B中,有一个第三位为1,另一个第三位为0 ...原创 2019-12-23 16:52:15 · 320 阅读 · 0 评论 -
判断一个数是不是2的整数次幂
/*** * 实现一个方法,来判断一个正整数是否是2的整数次幂 */ public class ISPowerOfTwo { /** * 创建一个中间变量temp 初始值为1,然后进入一个循环,每次循环都让temp和目标函数 * 比较,如果相等,则说明目标函数是2的整数次幂,如果不相等,则让temp增大1倍。 * 继续循环并进行比较,当temp的值大于目...原创 2019-12-23 16:51:09 · 145 阅读 · 0 评论 -
求两个整数的最大公约数(算法学习)
/*** * 问题:写一段代码,求出两个整数的最大公约数,尽量优化算法的性能 */ public class getGreatestCommonDivision { /** * 辗转相除法,又名欧几里得算法 * 定理:两个正整数a和b(a>b), * 他们的最大公约数等于a除以b的余数c和b之间的最大公约数 * @param a ...原创 2019-12-23 16:50:14 · 484 阅读 · 0 评论