08 2016 档案
摘要:把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 思路1:既然是只能被2、3和5整除,那么剩余到最后的数只能是1。 思路2:既然没个数都只能被2、3和5整除,那么这个数可
阅读全文
摘要:题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 思路:当把数字拼接起来后,可能会超出整数的上限,此时,我们可以将数字转换成字符串来处理。 第一种方法是:我们可以利用
阅读全文
摘要:public class Solution { public boolean HasSubtree(TreeNode root1,TreeNode root2) { boolean result = false; if(root1 == null || root2 == null) return false; if(root1!=null ...
阅读全文
摘要:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 思路:可以有两种实现方法,第一种是通过递归来实现,第二种是通过非递归来实现。 非递归:
阅读全文
摘要:思路:这个题的思路是可以考虑用插入排序的思想,首相我们需要的是将大写字母和小写字母进行互换,针对这道题来讲,是将小写字母放在大写字母的前面,那么我们就需要找到小写字母,然后将其保存到一个变量,将其前面的大些字母往后移,最终再将此值插入到首个大写字母的位置。
阅读全文
摘要:思路:回文串的特点是,逆序输出和正序输出是一样的。所以这道题可以从这方面来考虑。如果将此字符串逆序输出,那么两个字符串的最长公共子序列将是最长的回文字符串,那么剩余的值将是要删除的字符个数。 求LCS的方法可以在csdn中找到。
阅读全文
摘要:小Q今天在上厕所时想到了这个问题:有n个数,两两组成二元组,差最小的有多少对呢?差最大呢? 输入包含多组测试数据。 对于每组测试数据: N - 本组测试数据有n个数 a1,a2...an - 需要计算的数据 保证: 1<=N<=100000,0<=ai<=INT_MAX. 对于每组数据,输出两个数,
阅读全文
摘要:HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2}
阅读全文
摘要:求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。 思路1:针对这个
阅读全文
摘要:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 思路:如果有一个数组的出现次数超过一半,则必然有连着的两个相等的数。如果我们将连着的不相
阅读全文
摘要:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 思路:an=an/2*an/2(n为偶数) = a(n-1)/2*a(n-1)/2*a(n为奇数) 根据这个公式,我们可以把这个当成一个递推公式,如an与a(n/2)的关系(an/2与a(
阅读全文
摘要:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 知识点:把一个整数减去1之后再和原来的整数做位与运算,得到的结果相当于是把整数的二进制表示中最右边一个1变成0,可以将整数的二进制中最右边(不是0的位置)的1消掉。所以,有多少个1,循环就执行几次;反过来说,循环执行几次,就有几个1.
阅读全文
摘要:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 第一种思路是:从数组的第
阅读全文
摘要:思路:一个栈如stack1始终是用来存储数据,当另外一个栈不为空时直接从stack2中弹出,若为空时,则将stack1中的值全部压入到stack2中,再将stack2中元素的值取出即可。
阅读全文
摘要:重建二叉树,由前序遍历和中序遍历创建二叉树。这个可以递归实现。先找到根节点,然后找到前序遍历的数组和中序遍历的数组,即可实现。
阅读全文
摘要:建立最大的k个数,可以通过快速排序来实现,也可以通过堆排序来实现。我们来看堆排序的实现过程。 其中,也是有两种思路:第一种思路是:把数组里的所有的数建堆(O(nlogn)),然后交换k次,通过堆排序实现。(klogn) 时间复杂度是:O((n+k)logn) = O(nlogn) 第二种思路是:先用
阅读全文
摘要:堆排序的时间复杂度是:o(nlogn); 第一种思路:在所有的循环中,循环的第一次是建堆,剩余的是调整堆。 第二种思路是:先建堆,然后再调整堆。(建立一个调整堆函数 )
阅读全文

浙公网安备 33010602011771号