摘要:
问题描述: * 给定一个整数数组a,长度为N,元素取值范围为[1,N]。 * 统计各个元素出现的次数,要求时间复杂度为O(N),空间复杂度为O(1)。 * 可以改变原来数组结构。 思路: * 从第一个元素开始遍历,每遍历到一个元素,将(该元素值 - 1 记为index)作为一个下标值,令该下标对应的 阅读全文
摘要:
题目:Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 解析:合并k个已经有序的单链表,使其最终成为一个有序的单链表。原理就是归并排序,递归运算。基本算 阅读全文
摘要:
题目:Sort a linked list in O(n log n) time using constant space complexity. 分析:给单链表排序,要求时间复杂度是O(nlogn),空间复杂度是O(1)。时间复杂度为O(nlogn)的排序算法有快速排序和归并排序, 但是,对于单链 阅读全文
摘要:
题目: Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists. 分析:合 阅读全文
摘要:
题目: Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. 解析:同求全部组合的过程一样,只是这里限制每个组合中元素的个数为k,求所有组合时并不限制元素个数。 若要排除重复 阅读全文
摘要:
解析: 一:非字典序(回溯法) 1)将第一个元素依次与所有元素进行交换; 2)交换后,可看作两部分:第一个元素及其后面的元素; 3)后面的元素又可以看作一个待排列的数组,递归,当剩余的部分只剩一个元素时,得到一个排列; 4)将第1步中交换的元素还原,再与下一个位元素交换。 重复以上4步骤,直到交换到 阅读全文