摘要: 题目:我们把只包含银子2、3和5的数称作丑数。求按从小到大的顺序的第1500个丑数。例如6、8都是丑数,但14不是,因为它包含因子7,习惯上我们把1当作第一个丑数。 解题思路:逐个判断每个整数是不是丑数的解法,直观但不够高效 所谓一个数m是另一个数n的因子,是指n能被m整除,也就是n%m==0。根据 阅读全文
posted @ 2018-06-21 21:09 我们都是大好青年 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 题目:输入一个整型数组,数组里有正数也有负数。数组中一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n). 解题思路: 我们试着从头到尾逐个累加示例数组中的每个数字。初始化为0。第一步加上第一个数字1,此时和为1.接下来第二步加上数字-2,和就变成了-1,第三步加上数 阅读全文
posted @ 2018-06-21 20:25 我们都是大好青年 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 字符串的排列 题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出字符a、b、c所能排列出来的所欲字符串abc、acb、bac、cab和cba. 解题思路: 我们把一个字符串看成由两部分组成:第一部分为它的第一个字符,第二部分是后面的所有字符。过程如下图所示: 阅读全文
posted @ 2018-06-21 17:31 我们都是大好青年 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1、2、3、4、5是某栈的压栈序列,序列4、5、3、2、1是该压栈序列对应的弹出序列,但4、3、5、1、2就不可能是该压栈序列的弹出序列 解题方案: 总结上述入栈、出栈的过 阅读全文
posted @ 2018-06-21 16:54 我们都是大好青年 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1、2、3、4、5是某栈的压栈序列,序列4、5、3、2、1是该压栈序列对应的弹出序列,但4、3、5、1、2就不可能是该压栈序列的弹出序列 解题方案: 总结上述入栈、出栈的过 阅读全文
posted @ 2018-06-21 16:31 我们都是大好青年 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 题目:二叉树的镜像 请完成一个函数,输入一个二叉树,该函数输出他的镜像。 树的镜像对很多人来说是一个新的概念,如下图所示: 解题步骤: 交换根节点的两个子结点之后,我们注意到值为10,6的结点的子结点仍然保持不变,因此我们还需要交换这两个结点的左右子结点。交换之后的结果分别如下图中的第三棵树和第四棵 阅读全文
posted @ 2018-06-21 16:02 我们都是大好青年 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 题目:合并两个排序的链表 题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。例如输入图中链表1和链表2,则合并之后的升序链表如链表3所示。 思路解析: 首先分析合并两个链表的过程。我们的分析从合并两个链表的头节点开始。链表1的头结点的值小于链表2的头结点的值,因此链 阅读全文
posted @ 2018-06-21 15:03 我们都是大好青年 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 题目:输入一个链表,输出该链表中倒数第K个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如一个链表有6个结点,从头结点开始他们的值一次是1、2、3、4、5、6.这个链表的倒数第3个结点是值为4的结点。 解题思路:本题中所给的链表是单向链表,单向链表的结点只有从前往 阅读全文
posted @ 2018-06-21 11:53 我们都是大好青年 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,是的所有奇数位与数组的前半部分,所有偶数位与数组的后半部分。 解题思路: 一般思路:维护两个指针,第一个指针初始化时指向数组的第一个数字,它只向后移动;第二个指针初始化时指向数组的最后一个数字,它只向前移动,在两个指针相遇之前,第一个指针 阅读全文
posted @ 2018-06-21 10:39 我们都是大好青年 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 定义一个函数,在该函数中可以实现任意两个整数的加法。由于没有限定输入两个数的大小范围,我们也要把它当作大数问题来处理。 如果面试题是关于n位的整数并且没有限定n的取值范围,或者是输入任意大小的整数,那么这个题目很有可能是需要考虑大数问题的。字符串是一个简单、有效的表示大数的方法。 题目:给定单向链表 阅读全文
posted @ 2018-06-21 10:03 我们都是大好青年 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 链表的结构很简单,它由指针把若干个节点连接成链状结构。由于链表是一种哄抬的数据结构,其操作需要对指针进行操作。因为在船舰链表时,无须知道链表的长度。当插入一个节点时,我们只需要为新节点分配内存,然后调整指针的指向来确保新节点被链接到链表当中。内存分配不是在创建链表时一次性完成的,而是每添加一个节点分 阅读全文
posted @ 2018-06-21 09:23 我们都是大好青年 阅读(232) 评论(0) 推荐(0) 编辑