微创编程题
1.(35分)
输入一个单链表,输出该链表中倒数第k个节点,链表的倒数第0个节点为链表的尾指针,
链表结构定义:
struct listnode{
int m_nkey;
listnode* m_pnode;
};
用c/c++编写printnode函数,要求考虑链表非常大时的时间复杂度;
printnode函数原型:void printnode(const listnode *link,int k);
注:可以不用c/c++编写,可以用你自己熟悉的语言编写,但是首先扣掉10,
另外 只写出思路或者伪代码,给5分;
2.(35分)
对一个整数数组,给定一个整数,在数组中找到两个数,这两个数之和等于所给定的这个整数,这样的数可能有多对,要求输出所有可能的组合。
要求考虑数组非常大,时间复杂度和空间复杂度;