摘要: 方法一:举例分析数组的规律 例如数组{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 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 问题:输入n个整数,找出其中最小的k个数。 方案一:将输入的n个整数进行排序,输出前k个数即为所求的k个最小数。时间复杂度为O(nlogn). 方案二:创建一个大小为k的容器,来存储最小的k个数。遍历剩下的n-k个数字,如果大于k个数中的最大值,则替换;否则继续遍历数组的剩 下的数字。 在装k个最小 阅读全文
posted @ 2017-07-25 19:09 Miss_wang 阅读(1050) 评论(0) 推荐(0) 编辑
摘要: 问题:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 分析:看到此题第一反应就是将数组中的数字进行排序,然后统计数字出现的次数。排序的时间复杂度为O(nlogn)。 从另一个角度出发,数组中有一个数字出现的次数大于数组长度的一半,也就是说它出现的次数比其他数字出现次数之和还要多。因此 阅读全文
posted @ 2017-07-25 18:05 Miss_wang 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 算法思考,初步思路: 构建二维int或者short型数组,内存中 阅读全文
posted @ 2017-07-25 16:31 Miss_wang 阅读(225) 评论(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 阅读(2535) 评论(0) 推荐(0) 编辑
摘要: 问题描述:输入一个整数数组,判断该数组是不是某个二叉搜索树的后续遍历结果。如果是返回true,不是返回false。假设输入的数组的任意两个数字互不相同。 分析:二叉搜索树的根节点的左子树值小于根节点,右子树值大于根节点。根节点位于序列的尾部。递归判断节点的左右子树是否为二叉搜索树的后续遍历。 代码如 阅读全文
posted @ 2017-07-25 10:16 Miss_wang 阅读(653) 评论(0) 推荐(0) 编辑