算法与数据结构
SGoer
在互联网时代,限制你的只有求知欲。
展开
-
矩阵乘法算法
按照矩阵乘法的定义自己写的矩阵乘法算法。#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 · 389 阅读 · 0 评论 -
腾讯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 · 752 阅读 · 0 评论 -
腾讯2016实习生笔试题 获得最长回文串长度
题意是通过删除一个字符串中的字符,获得该字符串中能得到的最长的回文串的长度。比如字符串"adcbacdcabca"可通过删除两个d,获得最长回文串的长度为10。解题思路:这其实是一个求最长公共子序列的变形,求的是该串与逆序串的最长公共子序列。使用动态规划可很方便的求解。#include #include #include using namespace std;in原创 2016-04-08 10:48:45 · 787 阅读 · 0 评论 -
腾讯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 · 784 阅读 · 0 评论 -
KMP算法
看到这个KMP算法的讲解很清晰,值得收藏转载 2016-04-04 10:10:47 · 308 阅读 · 0 评论 -
反转句子中的单词 算法
腾讯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 · 484 阅读 · 0 评论 -
蓝桥杯基础练习 未名湖的烦恼
/*问题描述 每年冬天,北大未名湖上都是滑冰的好地方。北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。 每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法)输入格式 两个整数,表示m和n输出格式原创 2015-12-15 18:02:07 · 1111 阅读 · 0 评论 -
冒泡排序优化
#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 · 382 阅读 · 0 评论 -
蓝桥杯基础练习 杨辉三角
/*问题描述杨辉三角形又称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 · 918 阅读 · 0 评论 -
腾讯2016实习生笔试编程题 寻找最佳路径
腾讯2016实习生笔试编程题,题记不太清了,大概意思是给定一个二维数组,存放着一些财宝,然后从坐标(0, 0)开始,即左上角,每次只能向右或向下移动一次,求移到右下角时的,收获的财宝最高为多少。思路:回溯#include using namespace std; int max = 0; void func(int (&arr)[4][5原创 2016-04-03 22:28:40 · 755 阅读 · 0 评论