摘要: #include#includeusing namespace std;//method1/*简单的办法,可以每次将数组中的元素右移一位,循环k次。不妨设k是一个非负的整数,当k为负整数的时候,右移k位,相当于左移(-k)位。左移和右移本质上是一样的。大家开始可能会有这样潜在的假设,k0;j--) ... 阅读全文
posted @ 2012-11-07 13:20 吉大依恋 阅读(232) 评论(0) 推荐(0) 编辑
摘要: #includeusing namespace std;//method1/*利用动态规划来求解。假设目标数组array[]的前i个元素中,最长递增子序列的长度为LIS[i].那么,LIS[i]=max{1,LIS[k]+1},array[i+1]>array[k],for any kA[j] &&... 阅读全文
posted @ 2012-11-07 12:35 吉大依恋 阅读(213) 评论(0) 推荐(0) 编辑
摘要: #include#define MAX 100using namespace std;int A[MAX][MAX];int PS[MAX][MAX];//method1/*最直接的方法,当然是枚举每一个矩形区域,然后再求这个矩形区域中元素的和。时间复杂度为O(N^2 * M^2 * Sum的时间复... 阅读全文
posted @ 2012-11-07 09:04 吉大依恋 阅读(402) 评论(0) 推荐(0) 编辑
摘要: (1)已知第二维Code-1char (*a)[N];//指向数组的指针a = (char (*)[N])malloc(sizeof(char *) * m);printf("%d\n", sizeof(a));//4,指针printf("%d\n", sizeof(a[0]));//N,一维数组free(a);(2)已知第一维Code-2char* a[M];//指针的数组int i;for(i=0; i<M; i++)a[i] = (char *)malloc(sizeof(char) * n);printf("%d\n", 阅读全文
posted @ 2012-11-06 21:34 吉大依恋 阅读(196) 评论(0) 推荐(0) 编辑
摘要: #includeusing namespace std;//method1 /* 使用穷举的方法穷举出所有可能的子数组之和,然后从中找出最大值。由于使用三重循环故时间复杂度为O(N^3)*/int MaxSum(int* A,int n){ int maximum=A[0];//maximum初始化... 阅读全文
posted @ 2012-11-06 20:12 吉大依恋 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 指针和引用的差别:1.非空区别。指针可以为空,而引用在声明时必须初始化。2.合法性区别。在使用引用之前不需要测试它的合法性。相反,指针则应该总是被测试,反正其为空。3.可修改区别。指针的指向是可以修改的,而引用则总是指向在初始化时被指定的对象,以后不能改变,但是指定的对象其内容可以改变。4.应用区别。总的来说,在以下情况下应该使用指针:一是考虑到存在不指向任何对象的可能(在这种情况下,能够设置指针为空),二是需要能够在不同的时刻指向不同的对象。如果总是指向一个对象并且一旦指向一个对象后就不会改变指向,那么应该使用引用。5.占用内存区别。指针占内存空间而引用不占内存空间。 阅读全文
posted @ 2012-11-03 15:49 吉大依恋 阅读(162) 评论(0) 推荐(0) 编辑
摘要: #include<iostream>using namespace std;class A1{public:int a;static int b;A1();~A1();};class A2{public :int a;char c;A2();~A2();};class A3{public:float a;char c;A3();~A3();};class A4{public:float a;int b;char c;A4();~A4();};class A5{public:double d;float a;int b;char c;A5();~A5();};int main(){c 阅读全文
posted @ 2012-11-03 15:02 吉大依恋 阅读(733) 评论(0) 推荐(0) 编辑
摘要: 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)通过这道题面试官想考以下几个知识点:1.#define语法的基本知识(例如,不能以分号结束,括号的使用,等等)2.要懂得预处理器将为你计算常数表达式的值,因此,写出你如何计算多少秒比直接计算出实际的值更有意义。3.意思到这个表达式的值将使一个16位机的整型数溢出,因此要使用长整型符号L,告诉编译器这个常数是长整型。答案:#define seconds_per_year (365*24*60*60)UL写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。答案:#define MIN(A,B) ((A)< 阅读全文
posted @ 2012-11-03 12:59 吉大依恋 阅读(1420) 评论(0) 推荐(0) 编辑
摘要: STL算法的特殊版本所接受的所谓 条件 或 策略 或 一组动作,都以仿函式形式呈现。所谓仿函式(functor)就是使用起来像函式一样的东西。如果你针对某个class 进行operator()多载化,它就成为一个仿函式。至于要成为一个可配接的仿函式,还需要一写额外的努力。#include<iostream>using namespace std;//由于将operator()多载化了,因此plus成了一个仿函式template <class T>struct plus{T operator()(const T& x,const T& y){return 阅读全文
posted @ 2012-11-03 10:45 吉大依恋 阅读(233) 评论(0) 推荐(0) 编辑
摘要: STL提供六大组件,彼此可以组合套用:1.容器(containers):各种数据结构,如vector,list,deque,set,map,用来存放数据。从实作的角度看,STL容器是一种class template。2.算法(algorithms):各种常用算法如sort,search,copy,erase...,从实作的角度看,STL算法是一种function template。3.迭代器(iterators):扮演容器与算法之间的胶着剂,是所谓的 泛型指标,是一种将operator*,operator->,operator++,operator--等指标相关操作予以多载化的class 阅读全文
posted @ 2012-11-02 21:41 吉大依恋 阅读(463) 评论(0) 推荐(0) 编辑