随笔分类 -  在线编程

摘要:题目描述 在数组中找到连续的子阵列(包含至少一个数字),其数量最大。例如:给一个数组{-2,1,-3,4,-1,2,1,-5,4},连续的子序列[4,1,2,1]具有最大的和= 6。 分析 当我们从头到尾遍历这个数组的时候,对于数组里的一个整数,它有两种选择:1、加入之前的SubArray;2、自己 阅读全文
posted @ 2017-09-11 14:47 凌风1205 阅读(990) 评论(0) 推荐(0)
摘要:题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。 基本思 阅读全文
posted @ 2017-05-27 15:51 凌风1205 阅读(222) 评论(0) 推荐(0)
摘要:题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。 基本思路 使用Partition的思想来解决问题。如果基于数组的第k个数字来调整,使得比第k个数字小的所有数字都位于数组的左边,比第k个数字大的所有数字都位于数组的右边 阅读全文
posted @ 2017-05-23 15:43 凌风1205 阅读(295) 评论(0) 推荐(0)
摘要:题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入描述 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。 基本思路 求整个字符串的排列,可 阅读全文
posted @ 2017-05-16 17:37 凌风1205 阅读(393) 评论(0) 推荐(0)
摘要:题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 基本思路 假设二叉搜索树为{10,6,14,4,8,12,16},按照中序遍历,当我们遍历转换到根节点(值为10的节点)时,它的左子树已经转换成一个排序的链表了,并且处在链表 阅读全文
posted @ 2017-05-15 21:05 凌风1205 阅读(628) 评论(0) 推荐(0)
摘要:题目描述 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 基本思路 设二叉树为{10,5,12,4,7},和为22,则打印出两条路径,第一条路径为10,12,第二条路径为10,5,7。使用前序遍历的方法访问 阅读全文
posted @ 2017-05-14 21:35 凌风1205 阅读(712) 评论(0) 推荐(0)
摘要:题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 基本思路 在后序遍历得到的序列中,最后一个数字是树的根节点的值。数组中前面的数字可以分为两部分:第一部分是左子树节点的值,它们都比根节点的值小;第二部 阅读全文
posted @ 2017-05-14 11:43 凌风1205 阅读(237) 评论(0) 推荐(0)
摘要:题目描述 输入两个整数序列,第一个序列表示栈的压入书序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相同。例如1、2、3、4、5是某栈的压入序列,序列5、4、3、2、1是该栈对应的一个弹出序列,但4、3、5、1、2就不可能是该压栈序列的弹出序列。 基本思路 设置两个索引pushIn 阅读全文
posted @ 2017-05-11 11:56 凌风1205 阅读(200) 评论(0) 推荐(0)
摘要:题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. Java代码 阅读全文
posted @ 2017-05-08 20:46 凌风1205 阅读(254) 评论(0) 推荐(0)
摘要:题目描述 输入两棵二叉树A和B,判断B是不是A的子结构。我们约定空树不是任意一个树的子结构。 基本思路 要查找树A是否存在和树B结构一样的子树,我们可以分成两步:第一步在树A中找到和树B的根节点的值一样的节点R,第二步再判断树A中以R为根节点的子树是不是包含和树B一样的结构。 如上图所示:首先我们试 阅读全文
posted @ 2017-05-08 17:15 凌风1205 阅读(3352) 评论(0) 推荐(0)
摘要:题目描述 给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间删除该节点。 解题思路 在单向链表中删除一个节点,最常规的做法无疑是从链表的头结点开始,顺序的遍历查找要删除的节点,并在链表中删除该节点。这种思路由于需要顺序查找,时间复杂度自然就是$O(n)$了。 之所以需要从头开始查找,是因 阅读全文
posted @ 2017-05-07 21:34 凌风1205 阅读(415) 评论(0) 推荐(0)
摘要:基本思路 第一种方法:当我们只有对9999或者999或者99或9加1的时候,才会在第一个数字的基础上产生进位,而其他所有情况都不好在第一个数字上产生进位。因此当我们发现在加1的时候第一个数字产生了进位,则已经是最大的n位数,此时increment返回true,循环终止。代码如下: 第二种方法:使用全 阅读全文
posted @ 2017-05-07 10:29 凌风1205 阅读(194) 评论(0) 推荐(0)
摘要:思路分析: 首先分析把一个数减去1的情况,如果一个整数不等于0,那么改整数的二进制表示其中至少有一位是1.先假设这个数的最右边是1,那么减去1时,最后一位变成0而其他所有位都保持不变。也就是最后一位相当于做了取反操作,由1变成了0。 接下来假设最后一位不是1而是0的情况。如果该整数的二进制表示中最右 阅读全文
posted @ 2017-05-06 20:57 凌风1205 阅读(184) 评论(0) 推荐(0)
摘要:题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 分析: 在二叉树的前序遍历中,第一个数字总是树的根节 阅读全文
posted @ 2017-05-04 09:53 凌风1205 阅读(187) 评论(0) 推荐(0)
摘要:题目描述 度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少? 输入描述: 首先输入一个正整数N(N <= 50),接下来输入N个数表示每顶帽子的价格(价格均是正整数,且小于等于1000) 输出描述: 如果存在第三便宜的帽 阅读全文
posted @ 2017-05-03 22:12 凌风1205 阅读(360) 评论(0) 推荐(0)
摘要:题目描述 三维空间中有N个点,每个点可能是三种颜色的其中之一,三种颜色分别是红绿蓝,分别用'R', 'G', 'B'表示。 现在要找出三个点,并组成一个三角形,使得这个三角形的面积最大。但是三角形必须满足:三个点的颜色要么全部相同,要么全部不同。 输入描述: 首先输入一个正整数N三维坐标系内的点的个 阅读全文
posted @ 2017-05-03 22:06 凌风1205 阅读(854) 评论(0) 推荐(0)
摘要:题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 分析 用一个布尔量控制从左到右还是从右到左的顺序;如果为真则他的左右孩子按照从左到右的顺序放入list中,否则按照从右到左的顺序,当本行结束之后 阅读全文
posted @ 2016-11-08 20:32 凌风1205 阅读(2215) 评论(0) 推荐(1)
摘要:题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快 阅读全文
posted @ 2016-10-25 10:29 凌风1205 阅读(1158) 评论(0) 推荐(0)

//一下两个链接最好自己保存下来,再上传到自己的博客园的“文件”选项中