面试题
chenmiao0924
未来的程序猿
展开
-
已知集合A和B的元素分别用不含头结点的单链表存储,函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中
思路: 在B中寻找A的元素,若是找到了,则删除A中的该元素。这样A中剩下的就是A,B的差集 例如,若集合A={5,10,20,15,25,30},集合B={5,15,35,25},完成计算后A={10,20,30}。 具体代码如下://,若集合A={5,10,20,15,25,30},集合B={5,15,35,25},完成计算后A={10,20,30}。 #include <iostr原创 2017-07-26 12:54:16 · 625 阅读 · 0 评论 -
实现1+2+3...+n,要求不能使用乘除法、循环、条件判断、选择相关的关键字
方法1:利用静态变量和构造函数。时间复杂度为O(1) 调用构造方法n次,便可达到求1~n的和。因为静态全局变量只有一个作用于一个源文件中,所以只会创建一个。//方法1:利用静态变量和构造函数class Sum{public: Sum() { ++i; sum=i+sum; } static int GetSum() { r原创 2017-07-26 17:37:47 · 519 阅读 · 0 评论 -
一个m*n的矩阵,从左到右从上到下都是递增的,给一个数x,判断x是否在矩阵中。要求效率尽可能的高
利用杨氏矩阵的特点求解。 杨氏矩阵:从左到右。从上到下都是递增的。 如图,找一个数。从右上角开始找,若数大于右上角的数,则肯定大于第一行的数,所以可以排除一行;若数小于右上角的数,则肯定小于最后一列的数,则可排除最后一列。 具体代码如下:bool step_wise(int table[][4],int x,int n){ int col=n-1;//列 int row=0;//原创 2017-07-26 22:51:39 · 2377 阅读 · 0 评论