07 2017 档案

摘要:问题描述:我们只把包含因子2、3和5的数称为丑数。求按从小到大的顺序的第1500个丑数。 分析:要找到第i个丑数,需要用辅助数组存储前面i-1个丑数,用空间换取时间。 阅读全文
posted @ 2017-07-26 11:48 Miss_wang 阅读(293) 评论(0) 推荐(0)
摘要:方法一:举例分析数组的规律 例如数组{1,-2,3,10,-4,7,2,-5} 分析:循环遍历数组,初始累加和为0。第一步,和为1.第二步,和为-1;第三步,和小于0,如果用-1加上3,和为2,小于3.那么从第一个累加的和必然小于从3开始累加的和,因此放弃之前累加的和。从3从新开始,此时和为3。第四 阅读全文
posted @ 2017-07-25 22:15 Miss_wang 阅读(400) 评论(0) 推荐(0)
摘要:问题:输入n个整数,找出其中最小的k个数。 方案一:将输入的n个整数进行排序,输出前k个数即为所求的k个最小数。时间复杂度为O(nlogn). 方案二:创建一个大小为k的容器,来存储最小的k个数。遍历剩下的n-k个数字,如果大于k个数中的最大值,则替换;否则继续遍历数组的剩 下的数字。 在装k个最小 阅读全文
posted @ 2017-07-25 19:09 Miss_wang 阅读(1095) 评论(0) 推荐(0)
摘要:问题:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 分析:看到此题第一反应就是将数组中的数字进行排序,然后统计数字出现的次数。排序的时间复杂度为O(nlogn)。 从另一个角度出发,数组中有一个数字出现的次数大于数组长度的一半,也就是说它出现的次数比其他数字出现次数之和还要多。因此 阅读全文
posted @ 2017-07-25 18:05 Miss_wang 阅读(423) 评论(0) 推荐(0)
摘要:八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 算法思考,初步思路: 构建二维int或者short型数组,内存中 阅读全文
posted @ 2017-07-25 16:31 Miss_wang 阅读(252) 评论(0) 推荐(0)
摘要:1、关于字符串排列的问题 输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。 可以这样想:固定第一个字符a,求后面两个字符bc的排列。当两个字符bc的排列求好之后,我们把第一个字符a和后 阅读全文
posted @ 2017-07-25 14:59 Miss_wang 阅读(2574) 评论(0) 推荐(0)
摘要:问题描述:输入一个整数数组,判断该数组是不是某个二叉搜索树的后续遍历结果。如果是返回true,不是返回false。假设输入的数组的任意两个数字互不相同。 分析:二叉搜索树的根节点的左子树值小于根节点,右子树值大于根节点。根节点位于序列的尾部。递归判断节点的左右子树是否为二叉搜索树的后续遍历。 代码如 阅读全文
posted @ 2017-07-25 10:16 Miss_wang 阅读(668) 评论(0) 推荐(0)
摘要:package com.wyl.linklist; /** * 合并两个链表 * @author wyl */ public class MergeLinkList { /** * 内部类,链表节点的结构 * @author wyl * */ public static class Node{ private in... 阅读全文
posted @ 2017-07-24 15:34 Miss_wang 阅读(751) 评论(0) 推荐(0)
摘要:如何不使用java类库实现字符串反转? 方法一:数组反转法 将字符串转换成字符数组,对数组进行反转,再将反转后的数组转化成字符串。 方法二:逆序遍历法 将字符串转换成字符数组,可对数组进行逆序遍历。 方法三:递归法 将字符串转换成字符数组,对数组进行反转,再将反转后的数组转化成字符串。 阅读全文
posted @ 2017-07-24 15:03 Miss_wang 阅读(14718) 评论(0) 推荐(1)
摘要:问题描述:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,例如“人abc”4,应该截为“人ab”;输入“人abc们”6,应该截为“人abc”,而不是截为“人ab+们的半个” 阅读全文
posted @ 2017-07-24 14:47 Miss_wang 阅读(1994) 评论(1) 推荐(0)
摘要:问题描述:实现对一组无序的字母进行从小到大排序(区分大小写),当两个字母相同时,小写字母放在大写字母前。要求时间复杂度为O(n). 分析:如果没有时间复杂度的要求,可以采用传统的插入排序或快速排序的算法,但是传统的排序算法最好的时间复杂度为O(nlogn),不能满足题目的要求。对于时间复杂度高的问题 阅读全文
posted @ 2017-07-24 12:56 Miss_wang 阅读(2179) 评论(0) 推荐(0)
摘要:问题:寻找一条从左上角(a[0][0])到右下角(a[m-1][n-1])的路线,使得沿途经过的数组中的整数和最小。 方法一:递归法 假设到a[i-1][j]与a[i][j-1]的最短路径和为f(i-1,j)和f(i,j-1),那么达到a[i][j]的路径上所有数字的最小值为 f(i,j)=min{ 阅读全文
posted @ 2017-07-24 10:12 Miss_wang 阅读(5063) 评论(1) 推荐(0)
摘要:一、插入类排序 插入类排序的基本思想:在一个已经排好序的记录子集的基础上,每一步将下一个待排序的记录有序的插入到已经排好序的记录子集中,知道将所有待排记录全部插入为止。 1、直接插入排序 算法思想:直接插入排序是一种最基本的插入排序方法,其基本操作是将第i个记录插入到前面i-1个已经排好序的记录中。 阅读全文
posted @ 2017-07-23 14:11 Miss_wang 阅读(226) 评论(0) 推荐(0)
摘要:package com.wyl.linklist; /** * 栈的定义及相关操作 * 用数组实现栈 * 栈是一个线性表,不过进栈和出栈操作在表尾操作 * @author wyl * */ public class MyStack { private static final Integer STACKSIZE = 100; //声明栈的容量 private Int... 阅读全文
posted @ 2017-07-19 11:40 Miss_wang 阅读(1157) 评论(0) 推荐(0)
摘要:package com.wyl.linklist; /** * 双向链表,实现26个字母的循环输出 * @author wyl * */ public class MyBinaryLink { private Node head; //定义双线链表的头结点 /** * 定义双向链表的节点类 */ class Node{ pr... 阅读全文
posted @ 2017-07-18 17:58 Miss_wang 阅读(428) 评论(0) 推荐(0)
摘要:package com.wyl.linklist; /** **问题名称:魔术师发牌问题 *问题描述:魔术师手里一共有13张牌,全是黑桃,1~13. *********魔术师需要实现一个魔术:这是十三张牌全部放在桌面上(正面向下), ********第一次摸出第一张,是1,翻过来放在桌面上。 ******第二次摸出从上往下数第二张,是2,翻过来 放在桌面上,(第一张放在最下面去... 阅读全文
posted @ 2017-07-18 16:35 Miss_wang 阅读(784) 评论(0) 推荐(0)
摘要:package com.wyl.linklist; public class MyLinkList { private Node head; //链表的起始节点 private int size = 0; //记录链表的长度 /** * 定义内部节点类 * @author wyl * */ class Node { ... 阅读全文
posted @ 2017-07-16 10:27 Miss_wang 阅读(150) 评论(0) 推荐(0)
摘要:package com.test.tree; import java.util.Iterator; /** * 编写TreeSet类的实现程序,其中相关的迭代器使用二叉查找树。 * 在每个节点上添加一个指向其父节点的链 * @author wyl * @param */ public class MyTreeSet> { private BinaryNode r... 阅读全文
posted @ 2017-07-12 16:04 Miss_wang 阅读(574) 评论(0) 推荐(0)
摘要:package com.test.tree; import java.io.File; /** * 列出一个目录中所有的文件和他们的大小 * @author wyl * */ public class FileList { public void list(File f){ //文件根目录,深度为0 list(f,0); } /**... 阅读全文
posted @ 2017-07-12 11:14 Miss_wang 阅读(627) 评论(0) 推荐(0)
摘要:package com.test.tree; /** * 带有平衡条件的二叉查找树 * */ public class AVLBinarySearchTree> { /*内部类,定义二叉树中的节点结构*/ private static class TreeNode{ private T data; //节点的值 private Tr... 阅读全文
posted @ 2017-07-12 09:31 Miss_wang 阅读(773) 评论(0) 推荐(0)
摘要:package com.test.tree; public class BinarySearchTree> { /*定义二叉树的节点*/ private class BinaryNode{ public T data; public BinaryNode lt; public BinaryNode rt; ... 阅读全文
posted @ 2017-07-11 18:29 Miss_wang 阅读(219) 评论(0) 推荐(0)