- 博客(18)
- 收藏
- 关注
转载 腾讯2016实习生笔试编程题 打印蛇形矩阵的递归做法
在网上看到别人写的打印蛇形矩阵的递归做法,很神奇。至今还未彻底理解其中的数学推理关系,先转了。找不到原文了,抱歉 #include using namespace std; int getValue(int N, int _y, int _x) { if (1 == _y && 1 == _x) return 1; if ((_y <= _x) && (_y + _x <=
2016-04-08 10:58:58
799
原创 腾讯2016实习生笔试题 获得最长回文串长度
题意是通过删除一个字符串中的字符,获得该字符串中能得到的最长的回文串的长度。 比如字符串"adcbacdcabca"可通过删除两个d,获得最长回文串的长度为10。 解题思路:这其实是一个求最长公共子序列的变形,求的是该串与逆序串的最长公共子序列。使用动态规划可很方便的求解。 #include #include #include using namespace std; in
2016-04-08 10:48:45
827
原创 腾讯2016实习生笔试编程题 寻找最佳路径
腾讯2016实习生笔试编程题,题记不太清了,大概意思是给定一个二维数组,存放着一些财宝,然后从坐标(0, 0)开始,即左上角,每次只能向右或向下移动一次,求移到右下角时的,收获的财宝最高为多少。 思路:回溯 #include using namespace std; int max = 0; void func(int (&arr)[4][5
2016-04-03 22:28:40
804
原创 腾讯2016实习生笔试编程题 打印蛇形矩阵
腾讯2016实习生笔试编程题,当时没做出来,只写了个雏形,还存在很多问题。考完了才把它调通。好难过。。 要求实现的效果如下。 #include using namespace std; int main() { int n = 0; cin >> n; int *arr = new int[n*n];
2016-04-03 22:27:03
823
原创 反转句子中的单词 算法
腾讯2016实习生笔试的编程题,完成一个句子中单词的反转。 比如“I Come From China.” -----> "China. From Come I" 思路:将整个字符串进行一次反转,再对每个单词进行逐个反转 #include using namespace std; void reStr(char arr[], int low, int high) { int
2016-04-03 22:13:36
531
转载 虚函数表测试代码 帮助理解虚函数表
#include using namespace std; class Base { public: virtual void f() { cout << "Base::f()" << endl; } virtual void g() { cout << "Base::g()" << endl; } virtual void h() { cout << "Base::h()" << e
2015-12-15 20:20:44
279
原创 蓝桥杯基础练习 未名湖的烦恼
/* 问题描述 每年冬天,北大未名湖上都是滑冰的好地方。北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。 每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法) 输入格式 两个整数,表示m和n 输出格式
2015-12-15 18:02:07
1209
原创 冒泡排序优化
#include using namespace std; //冒泡排序 void bubbleSort(int arr[], int len) { for (int i = 0;i < len;i++) for (int j = 0;j < len - 1 - i;j++) { if (arr[j] > arr[j + 1]) { int temp = arr
2015-12-15 18:00:02
419
原创 蓝桥杯基础练习 杨辉三角
/* 问题描述 杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。 它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。 下面给出了杨辉三角形的前4行: 1 1 1 1 2 1 1 3 3 1 给出n,输出它的前n行。 输入格式 输入包含一个数n。 输出格式 输出杨辉三角形的前n行。每一行
2015-12-15 17:57:15
968
转载 C++ operator关键字(重载操作符)
转载自点击打开链接 operator是C++的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将operator=整体上视为一个函数名。 这是C++扩展运算符功能的方法,虽然样子古怪,但也可以理解:一方面要使运算符的使用方法与其原来一致,另一方面扩展其功能只能通过函数的方式(c++中,“功能”都是由函数实现的)。 一、为什么使用操作符重载? 对于系统的所有操作
2015-12-15 15:40:34
668
原创 delete和delete[]的区别
1. new/delete、new[]/delete[] 配套使用总是没错的! 2. delete[]适用于带自定义析构函数的对象数组,如果没有自定义析构函数(在内存方面,析构函数主要用于释放对象中其他已分配的内存)也可以使用delete。
2015-11-09 14:50:17
437
原创 一道腾讯笔试题【深、浅拷贝】
#include class A { int i; }; class B { A *p; public: B() { p = new A; } ~B() { delete p; } }; void sayHello(B b) { } int main() { B b; sayHello(b); return 0; } 题中的代码如上,问题是上面的代码是否存在问题?其实
2015-10-07 22:10:13
652
转载 C语言指针数组与数组指针
一、指针数组和数组指针的内存布局 初学者总是分不出指针数组与数组指针的区别。其实很好理解: 指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。 数组指针:首先它是一个指针,它指向一个数组。在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。 下面到底哪个是数组指针,哪个是指针数
2015-09-20 11:40:34
334
原创 个人整理 Linux文件属性和权限
1.1. Linux学习内容(文件属性与权限) 1.1.1.目录与文件:windows与Linux系统在目录与文件组织上的区别在于,windows将不同的磁盘分为C、D、E…等盘。而Linux的文件组织方式是从“/”开始的一棵树,所以“/”也被称为根目录。 Linux下终端运行显示文件系统使用 [ls] 命令,靠颜色来区分不同文件类型(windows下带有或使用
2015-09-20 10:17:22
1399
转载 Java 中常用的文件操作
1、创建文件 [java] view plaincopy public static boolean createFile(String filePath){ boolean result = false; File file = new File(filePath); if(!file.exists()){ try {
2015-09-20 10:12:55
335
原创 矩阵乘法算法
按照矩阵乘法的定义自己写的矩阵乘法算法。 #include #include using namespace std; int main(void) { int ai, aj; int bi, bj; cout << "Please input the rows of A:"; cin >> ai; cout << "clos of A:"; cin >> aj; co
2015-09-18 15:44:22
429
原创 C/C++结构体和类中的内存对齐
在对结构体或者类进行 sizeof 的时候,其涉及到内存对齐的相关规则。了解内存对齐的规则,我们便可以通过指针去访问类或结构体中的成员(对于我们理解结构体和类的内存布局以及指针的用法有极大好处)。 先来看一个例子: typedef struct { int a; double c; short b; }S_A; typedef struct { int a; short b; d
2015-09-17 14:51:59
1659
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅