2016年7月1日

两个链表第一个公共结点

摘要: 题目:输入两个链表,找出它们的第一个公共节点。链表的定义如下: 思路1:采用蛮力的方法:在第一个链表上顺序遍历每个节点,每遍历到一个节点的时候,在第二个链表上顺序遍历每个节点。如果第二个链表上的节点和第一个链表上的节点一样,就说明两个链表在节点上重合,于是就找到了公共的节点。而通常蛮力并不是好的方法 阅读全文

posted @ 2016-07-01 22:10 三颗心 阅读(1117) 评论(0) 推荐(0) 编辑

第一次只出现一次的字符

摘要: 题目:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出‘b’。 思路1:遍历,也就是从头开始取字符串中的一个字符,将其与其后的所有字符比较,如果有相同的字符,那么就证明它不是只出现一次的字符。当第一次出现遍历完其后字符并且没有重复时,表明这个字符就是“第一个只出现一次的字符 阅读全文

posted @ 2016-07-01 20:17 三颗心 阅读(1887) 评论(0) 推荐(0) 编辑

丑数

摘要: 题目:我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第1500个丑数。 思路1:遍历 思路2: 根据丑数的定义,丑数应该是另一个丑数乘以2、3或者5的结果(1除外)。因此我们可以 阅读全文

posted @ 2016-07-01 19:33 三颗心 阅读(354) 评论(0) 推荐(0) 编辑

连续子数组的最大和

摘要: 题目:输入一个整形数组,数组里有正数也有负数。组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。 思路:当我们加上一个正数时,和会增加;当我们加上一个负数时,和会减少。如果当前得到的和是个负数,那么这个和在接下来的累加中应该抛弃并重新清 阅读全文

posted @ 2016-07-01 16:38 三颗心 阅读(536) 评论(0) 推荐(0) 编辑

最小的K个数

摘要: 题目:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 思路1:我们通过快排找到第k个数,然后比他的小的都在左边,比他大的都在右边。 思路2:应对大数据的情况,首先取数组中前k个数字建立大根堆,建立堆之后,从第k+1个元素开始 阅读全文

posted @ 2016-07-01 15:06 三颗心 阅读(378) 评论(0) 推荐(0) 编辑

导航