摘要:
解法:使用按层遍历二叉树的非递归形式 每次到达此层末尾时就打印。 public class PrintTreeRightNode { public static class Node{ private Node left; private Node right; private int value; 阅读全文
摘要:
原理:链表功能强大,可在头或尾进行插入和删除。 public class ListToStack { LinkedList<Integer> linkedList = new LinkedList<>(); public void add(int value){ linkedList.addLast 阅读全文
摘要:
一个整数数组中的元素有正有负,在该数组中找出一 个连续子数组, 要求该连续子数组中各元素的和最大,这个连续子数组便被称作最大连续子数组。 比如数组{2,4,-7,5,2,-1,2,-4,3}的最大连续子数组为{5,2,-1,2},最大连续子数组的和为5+2-1+2=8。 问题输入就是一个数组,输出该 阅读全文
摘要:
给定一个有N*M的整型矩阵matrix和一个整数K, matrix的每一行和每一 列都是排好序的。实现一个函数,判断K 是否在matrix中。 例如: 0 1 2 5 2 3 4 7 4 4 4 8 5 7 7 9 如果K为7,返回true;如果K为6,返 回false。 【要求】 时间复杂度为O( 阅读全文
摘要:
冒泡排序,就像一个个吐泡泡一样,每次经过一个循环,确定一个最大或最小的数。 public class BubbleSort { public static void main(String[] args) { int arr[] = {1,5,9,8,7,6,3,10}; bubblesort(ar 阅读全文
摘要:
解题思路:创建hashmap,一个存K,数字,另一个存数字,K,每当插入元素时,将元素非别对应插入两个hashmap中目的是能够方变随机查找。 public class RandomPool { public static class Pool<K>{ private HashMap<K,Integ 阅读全文
摘要:
public class IsPanlindromeList { public static class Node{ Node next ; int value; public Node(int value){ this.value = value; } } //第一种方法,用了空间复杂度为n,将链 阅读全文
摘要:
完全二叉树:每层结点都完全填满,在最后一层上如果不是满的,则只缺少右边的若干结点。如果一个节点有右孩子没有左孩子,直接返回false。(判断条件1)如果一个节点不是左右两个孩子都全(有左没右或左右都没有),则开启阶段,此时其余节点全是叶节点。(判断条件2)否则不是完全二叉树。 public clas 阅读全文
摘要:
实现原理:假设queue,help两个队列。push操作时,将数据压入queue队列。pop操作时 将queue队列的数据只保留最后一个,其余压入help队列。然后将最后一个弹出。这样就保证了栈的后进先出,之后交换两个队列,有数据的一直存放在queue中。 public class QueueToS 阅读全文