数据结构
liaction
这个作者很懒,什么都没留下…
展开
-
二叉树先根序、后根序、中根序遍历的速算法(解题技巧)
已知二叉树的先/后根序遍历和中根序遍历可唯一确定一棵二叉树,数据结构试题中常有已知先(后)根序遍历要求确定后(先)根序遍历题型。一般的,我们要按照已知的条件把二叉树画出来,再按图写出结果。这样麻烦的事常让我感到混乱而不得不出错。经过研究我找出了一种不用画图,由先(后)根序遍历和中根序遍历迅速确定遍历结果的办法。谨以此文献给智商与我同级而又不得不研究算法的朋友。抽象思维太差,用例子来说明吧。下面转载 2014-03-20 15:54:25 · 2226 阅读 · 0 评论 -
Java排序算法总结
1、冒泡排序冒泡排序是排序算法中最基本的一种排序方法,该方法逐次比较两个相邻数据的大小并交换位置来完成对数据排序,每次比较的结果都找出了这次比较中数据的最大项,因为是逐次比较,所以效率是O(N^2)的。[java] view plaincopypublic void bubbleSort() { int out,in;转载 2015-03-13 16:11:09 · 526 阅读 · 0 评论 -
哈希表的原理和实现
数据结构:hash_map原理 这是一节让你深入理解hash_map的介绍,如果你只是想囫囵吞枣,不想理解其原理,你倒是可以略过这一节,但我还是建议你看看,多了解一些没有坏处。hash_map基于hash table(哈希表)。哈希表最大的优点,就是把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间;而代价仅仅是消耗比较多的内存。然而在当前可利用内存越来越多的情况下,用空间换转载 2015-03-18 15:30:53 · 1056 阅读 · 0 评论 -
50个人围成一圈数到3和3的倍数时出圈,问剩下的人是谁?在原来的位置是多少(简单易懂)
该题目的圈的元素个数是50个,每次数到3或3的倍数的时候,就把当前元素出圈,并且继续数数(比如叫6的那个数被删除后,下一个叫7),直到再遇到3的倍数。这里,如果下标从0开始,一直到一圈完成以后,它就会接到圈的首部,这应该如何处理呢?其实,最好的办法就是使用取余的办法,就可以始终得到3个倍数,无论它的倍数是多少,也不管它的元素个数是多少。由于每次去掉元素以后,元素的个数会少一个,因此下一个3原创 2015-08-07 11:16:15 · 4216 阅读 · 0 评论 -
输入数字 n,按顺序输出从 1 最大的 n 位 10 进制数
题目: 输入数字 n,按顺序输出从 1 最大的 n 位 10 进制数。比如输入 3,则输出 1、 2、 3一直到最大的 3 位数即 999。import java.math.BigInteger;import java.util.*;public class Main { public static void main(String[] args) { // TODO Auto-ge原创 2015-09-06 22:02:42 · 619 阅读 · 0 评论 -
给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。
问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。输入格式 输入的第一行包含一个整数n,表示给定数字的个数。 第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。输出格式 输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数。按出现次数递减的顺序输出。如果两个整数出现的次数一样多,则先输出值较小的,然后输出原创 2015-09-12 21:05:41 · 13920 阅读 · 0 评论 -
求原始矩阵逆时针旋转90度后的矩阵(CCF)
package com.lck;import java.util.Scanner;public class Main3 { /* 问题1 问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。 计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。 输入格式 输入的第一行包含两个整数n, m,分别表示图原创 2015-09-12 21:25:07 · 5296 阅读 · 2 评论