算法题
Harry_T
这个作者很懒,什么都没留下…
展开
-
剑指offer-复杂链表复制
题目: 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 思路: 自己最开始是使用递归的方法,但是空间不够。随后用了一个分三步的方法: (1)首先插入复制的节点到每一个原始节点之后, (2)调节复制节点的random指...原创 2018-04-23 16:52:59 · 154 阅读 · 0 评论 -
剑指offer- 把数组排列成最小的数字
题目描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 解决思路: 可以看出我们对于第一位数字不一样的数字是很好比较大小的,对于第一位相同的数字,我们会比较第二位的大小。在这一点上很像字符串的比较,因此我们可以考虑用排序将整个数组进行排序,然后相加。 排序规...原创 2018-04-25 10:37:01 · 156 阅读 · 0 评论 -
剑指offer-丑数
题目描述: 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 题目思路: 代码: class Solution { public: int GetUglyNumber_Solution(int index) { if(inde...原创 2018-04-25 15:29:55 · 109 阅读 · 0 评论 -
剑指offer-数组中的逆序对
题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 思路: 遇到该问题的时候,最直观的方法是用两个for循环进行求解,复杂度为O(n2)O(n2)O(n^2)。理所当然的超时了。 然后思考其他解决方法,看能不能利用已经遍历比较过的...原创 2018-04-25 19:22:15 · 160 阅读 · 0 评论