算法
a781558066
这个作者很懒,什么都没留下…
展开
-
【递归】棋盘覆盖
问题描述:在一个2^k*2^k 的方格组成的棋盘中,有一个方格与其他方格不同,称为特殊方格。现在邀请4中不同的L型骨牌 覆盖给定的棋盘除特殊方格外的所有方格。例如:这是一个K=2时的棋盘,特殊点坐标为(0,1)。四中L型骨牌如图:程序代码:#include #define KEY 8 //棋盘的阶数int ar[KEY][KEY]=原创 2015-04-11 11:43:16 · 745 阅读 · 0 评论 -
[Boost]用asio编写简单的socket通信程序
boost/asio库中封装了很多关于scoket的函数,当然,asio库还包含很多底层的库。我们可以用socket编写一个基于UDP协议的黑框通讯程序。要想使用asio里面的函数,大多都需要先创建一个io_service对象,然后通过这个serveice来构造不同的对象,所以第一步,我们得创建两个对象: boost::asio::io_service io_service; b原创 2015-08-27 10:54:53 · 6880 阅读 · 0 评论 -
KMP算法解决字符串出现次数
比如主串为:”1001110110” 子串为:”11“ 则出现位置分别为:3 4 7//KMP算法 2015.6.7#include<iostream>#include<stdlib.h>using namespace std;int main(){ char *s = "1001110110"; char *p = "11"; int ar[20] = {原创 2015-06-15 22:11:02 · 2850 阅读 · 1 评论 -
[编程题]Be Unique (赌徒下注问题)
Being unique is so important to people on Mars that even their lottery is designed in a unique way. The rule of winning is simple: one bets on a number chosen from [1, 104 ]. The first one who bets on原创 2015-06-15 22:04:05 · 1191 阅读 · 0 评论 -
[编程题]Shuffling Machine (洗牌程序)
Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffling techniques are seen as weak, and in order to avoid “inside jobs” where employees collaborate with gamblers原创 2015-06-15 22:02:33 · 3103 阅读 · 0 评论 -
[编程题]数字分类
给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和; A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4…; A3 = 被5除后余2的数字的个数; A4 = 被5除后余3的数字的平均数,精确到小数点后1位; A5 = 被5除后余4的数字中最大数字。 输入描述:每个输入包含1个测试用例。每个测试用例先给出一个不原创 2015-06-15 21:58:02 · 1092 阅读 · 0 评论 -
一个循环实现冒泡法排序(并没有什么卵用)
冒泡法时间复杂度为O(n^2) 这个是改不了的 不可能因为用一个循环实现,就变成了O(N)。。。 所以,并没有什么卵用,只是一种写代码的方式而已。。。//Swap 用宏实现#define Swap(a,b,c) ((c)=(a),(a)=(b),(b)=(c))//第一种方式,,,最简单的void BubbleSortOneLoop(int ar[], int n){ int i原创 2015-06-17 23:16:21 · 1731 阅读 · 0 评论 -
矩阵的排序
在一个m*n矩阵中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,按从小到大的顺序打印这个矩阵到一个一维数组中。如图,则应打印出1,2,2,4,4,6,7,8,8,9,9,10,11,12,13,15.思路:如果把它想成 合并m个大小为n的数组,那么思路将会很简单。 但是,矩阵的m和n为随机值,所以并不能想很简单的那种合并。 假如我们定义一个大小为m原创 2015-05-05 19:10:42 · 11814 阅读 · 0 评论 -
单链表的sort以及resver的实现(改变链表指向而非数值)
单链表的sort排序采用冒泡法,不是单纯的改变链表结点的值,而是通过改变物理结构上的指针域指向实现。 void sort(List *list){ if(list->size <=1)` //基本条件 return ; Node *p,*q,*pa,*temp; for(int i=0;i<list->size-1;i++)//控制总次数 {原创 2015-05-04 12:58:37 · 1734 阅读 · 0 评论 -
【算法】最长回文子串的判断
描述:比如:“12212321”的最长回文子串为“12321”长度为5int LongestPalindrome(string s){ int max=0; if (s.length() >= 1) { for(int i=0;i<s.length();i++) //从左向右依次遍历 { int l; //如果这个子串长度为质数 for(l=原创 2015-04-26 13:33:10 · 735 阅读 · 0 评论 -
【字符串】字符串包含问题的最优解
题目描述 给定两个分别由字母组成的字符串A和字符串B,字符串B的长度比字符串A短。请问,如何最快地判断字符串B中所有字母是否都在字符串A里? 为了简单起见,我们规定输入的字符串只包含大写英文字母,请实现函数bool StringContains(string &A, string &B)比如,如果是下面两个字符串: String 1:ABCD String 2:BAD原创 2015-04-26 13:27:23 · 1049 阅读 · 0 评论 -
【算法】字符串左移函数的O(n)解法
例如,字符串 abcdef ,若要让def翻转到abc的前头,只要按照下述3个步骤操作即可: 首先将原字符串分为两个部分,即X:abc,Y:def; 将X反转,X->X^T,即得:abc->cba;将Y反转,Y->Y^T,即得:def->fed。 反转上述步骤得到的结果字符串X^TY^T,即反转字符串cbafed的两部分(cba和fed)给予反转,cbafed得到defabc,形式化表示为原创 2015-04-13 12:55:01 · 1118 阅读 · 0 评论 -
【算法】合并排序
#include #include void mergePass(int *ar,int *pr,int s,int size);void merge(int *ar,int *pr,int l,int m,int r);void mergeSort(int *ar,int size) // 合并排序{ int *pr=(int *)malloc(sizeof(int)*原创 2015-04-11 20:11:56 · 809 阅读 · 0 评论 -
【字符串】大数的乘法(包括浮点数)
一.大数乘法我们知道,要运算两个数的乘法,c、c++语言里有专门的运算符*。但是当两个数超过一定的范围时,用普通的运算符会产生溢出,并不能得到正确的结果。如何进行运算呢? 首先,要想保存一个大数,用正常的整形或浮点类型是不够的。所以我们可以采用字符串的形式对大数进行保存,然后编写算法,模拟乘法运算过程即可。1.第一个问题:两个数字运算结果至多用多少位的字符串保存呢?两个4原创 2015-04-22 11:21:23 · 6315 阅读 · 0 评论 -
【内存泄露/C++】基于重载new运算符的内存泄露检测工具
···检测内存泄露的方法有很多,这里使用的是重载系统的new运算符和delete运算符。从而达到,在new的时候记录申请内存的大小,和代码所属文件和行号,后两个信息主要是为了调试。在程序结束之前,访问保存的这些信息,判断内存是否泄漏。 ···这里使用的存储结构是哈希表,结构如下:typedef struct MemNode//记录new时保存的信息{ int size; char原创 2015-09-02 10:20:12 · 903 阅读 · 0 评论