摘要: 题目描述 一个链表中包含环,请找出该链表的环的入口结点。 解题思路 解决这个问题的第一步是如何确定一个链表中包含环。可以定义两个指针,同时从链表的头结点出发,一个指针一次走一步,另一个一次走两步。如果走得快的指针走到了链表的末尾都没有追上第一个指针,那么链表就不包含环。反之则可得到环中的一个节点。 阅读全文
posted @ 2018-03-29 11:46 FlyingWarrior 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入两个链表,找出它们的第一个公共结点。 解题思路 分析可得如果两个链表有公共节点,那么公共节点出现在两个链表的尾部,即从某一节点开始,两链表之后的节点全部相等。可以首先遍历两个链表得出各自的长度l1、l2,然后让长度较大的链表向前走l(max)-l(min)步,接着两个链表分别向后遍历, 阅读全文
posted @ 2018-03-29 10:54 FlyingWarrior 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个链表,输出该链表中倒数第k个结点。 解题思路 本题是典型的双指针法链表题,可以用两个指针:first和second分别指向头结点,其中first先往前走k步,然后first和second同时向前走,直到first指向NULL,此时second指向的节点便是链表中倒数第k个结点。注意 阅读全文
posted @ 2018-03-29 10:28 FlyingWarrior 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 解题思路 快速排序是排序算法中时间复杂度较好的一种解法,它每一轮从待排序的数组中取一个数,通过比较移动各个数字,小于该数的移到左边,大于的移到右边,然后再递归地在左右两边进行此算法,直到带排序数组长度变为1。算法导论中快速排序的分治解法相当简介,在此我用C++来加以记录。 代码 阅读全文
posted @ 2018-03-27 19:22 FlyingWarrior 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 解题思路 阅读全文
posted @ 2018-03-25 19:22 FlyingWarrior 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 解题思路 考虑记录两个值:一个是数组中的数字,另一个是他出现的次数。每遍历到一 阅读全文
posted @ 2018-03-25 10:36 FlyingWarrior 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 问题描述: Eva loves to collect coins from all over the universe, including some other planets like Mars. One day she visited a universal shopping mall whi 阅读全文
posted @ 2018-03-24 15:03 FlyingWarrior 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 题目描述 小易有一个圆心在坐标原点的圆,小易知道圆的半径的平方。小易认为在圆上的点而且横纵坐标都是整数的点是优雅的,小易现在想寻找一个算法计算出优雅的点的个数,请你来帮帮他。 例如:半径的平方如果为25 优雅的点就有:(+/-3, +/-4), (+/-4, +/-3), (0, +/-5) (+/ 阅读全文
posted @ 2018-03-23 18:58 FlyingWarrior 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给你六种面额1、5、10、20、50、100元的纸币,假设每种币值的数量都足够多,编写程序求组成N员(N为0-10000的非负整数)的不同组合的个数。 输入描述: 输入为一个数字N,即需要拼凑的面额 输出描述: 输出也是一个数字,为组成N的组合个数。 示例1 输入 5 输出 2 解题思路: 阅读全文
posted @ 2018-03-23 16:29 FlyingWarrior 阅读(801) 评论(0) 推荐(0) 编辑
摘要: 解法转自扇形图色问题 题目描述 将一个圆形等分成N个小扇形,将这些扇形标记为1,2,3,…,N。现在使用M种颜色对每个扇形进行涂色,每个扇形涂一种颜色,且相邻的扇形颜色不同。 求:有多少种涂色方法。 分析 设a(n)为符合要求的第n个扇形的涂色方法。 对扇形1有m种涂色方法,扇形2有m-1种涂色方法 阅读全文
posted @ 2018-03-14 15:04 FlyingWarrior 阅读(536) 评论(0) 推荐(0) 编辑