算法
枫舞的季节
回家的路弯弯曲曲很容易令人迷失方向慢慢地慢慢地尘埃落下路已经走了大半了山的轮廓慢慢可以看得清了慢慢慢慢地揭开一层层的面纱就像翻起一张张的ppt 一样雾遮掩着山就像记忆中的家乡夜也在悄悄降临暮霭的颜色越来越迷人了
展开
-
目录的枚举非递归实现
目录的枚举经常用到,但是大家大多数用递归就能解决问题,但是在某些环境,内存受到限制情况下,递归就回占用大量内存,导致程序崩溃,那么这个时候怎么办?使用非递归!把递归转为非递归目录的递归访问转为非递归访问.以windows 为例:枚举目录需要一个路径继续访问需要上次访问目录的句柄遇到目录,将新目录追加上;保存原来的句柄退回上一级,根据\,将目录退一层;将原来句柄取回来思路就是这样,代码呈上:// enum_dir.cpp : 定义控制台应用程序的入口点。//#原创 2020-06-22 22:44:26 · 233 阅读 · 0 评论 -
有穷自动机实现拆分字符串为vector
拆分字符串为vector字符串分割,在网上看到几种方法https://www.jb51.net/article/55954.htm1 使用strtok分割//借助strtok实现split#include <string.h>#include <stdio.h> int main(){char s[] = "Golden Global View,disk *...原创 2019-09-19 11:48:53 · 197 阅读 · 0 评论 -
爬小说
问题:看小说有很多广告,使用迅雷下载,如果文件名称没有规律的话,下载效率很低,因为猜不到文件名规律。于是就想每一章都有下一章,因此可以根据"下一章" 找到 href 然后下载下一章,如果"下一章"已经下载则说明循环了,要停止。下载完以后,需要生成新的小说文件,可以根据小说的开始位置的特点和结束位置特点进行获取文件内容,并且生成目录。这样一本小说就加工出来了。下面是爬小说的部分,使用了 curl...原创 2019-09-09 17:04:38 · 533 阅读 · 0 评论 -
节省栈空间的枚举目录
windows 枚举目录的时候如何节省空间不会导致栈溢出。下面就是尽量节省空间的代码.#include <windows.h>#define println(format,...) printf(format "\n",__VA_ARGS__)static WIN32_FIND_DATA a;WIN32_FIND_DATA * get_wfd(){ return &...原创 2018-11-04 11:10:36 · 174 阅读 · 0 评论 -
一道面试题,把excel的列的名称转换为数字
这是一道某公司的上机面试题:microsoft excel 中栏目是用 A,B,C...Z;AA,AB,...ZZ ... ZZZZ ....这样表示序列的它对应是这样0,1,2,...25;26,27...701 ...475253原创 2016-11-15 21:11:18 · 2694 阅读 · 2 评论 -
八皇后问题三种实现
八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。计算机发明后,有多种计算机语言可以解决此问题原创 2016-11-08 10:35:16 · 443 阅读 · 0 评论 -
组合算法
组合和顺序无关,只有取或不取两种选择,不停的二叉树分下去。原创 2015-05-26 07:17:25 · 504 阅读 · 0 评论 -
简单排列算法
排列是练习递归的简单的算法,因此练习一下。原创 2015-05-25 21:40:18 · 354 阅读 · 0 评论 -
erlang 通过尾递归实现双层循环,并抽象出两向量的叉积的一般运算式
当我使用erlang 编程的时候,总是为没有循环而苦恼。连乘法口诀表都很难实现,想想都郁闷。 然而当你必须要解决循环的时候,你发现了另外一条路。 C语言: for(int i=1;i { for(int j=1;j { if(i>=j) printf("%d",i*原创 2015-05-22 15:30:44 · 1851 阅读 · 0 评论 -
C++实现24点
24 点这个是比较经典的习题,里面涉及到排列组合以及如何处理四则混合运算的优先级问题原创 2015-05-19 12:14:39 · 7649 阅读 · 0 评论 -
使用 C++11的新功能实现自动化的测试
使用 C++11的新功能实现自动化的测试原创 2015-04-14 19:06:57 · 1697 阅读 · 0 评论 -
使用状态机(有穷自动机)实现 printf功能
有穷自动机是编译原理讲的,在词法分析中使用比较广泛。因为它仅仅能分析正则规则的语言,因此使用起来比较简单。现在我们使用它来实现printf原创 2015-04-10 10:51:39 · 1445 阅读 · 0 评论 -
一个面试题,求数组中第二大的数
这个题如果按照最笨的方法,起泡法,第二遍的时候就能把第二大的数求出来,但是效率太低了,为 O(2n) 根据所学的锦标赛法先分 N 组,两个元素一组 可能得到 N/2 或者 N/2+1组,大的元素交换到头,然后再比较剩下的一半然后两两比较,继续 分下去,最后能决出第一名而第二名应该从 索引为 1 2 3 (索引从0开始),而在进入决赛的时候,第一名将令一名淘汰了,和亚军争第一,那么第原创 2013-06-14 16:13:48 · 2008 阅读 · 1 评论 -
实现回溯法求走迷宫
题目是这样:有一个入口比如坐标(0,0) 迷宫是 8x8 的矩阵,出口是 (7,7),0 为通过,1 为不通函数为: find_path_in_maze思路如下:每个节点(路径坐标点)都有两个元素 坐标和阻塞的坐标数组使用栈的思想,将入口入栈,在栈顶循环操作,查找下一个可以走的路径 next_path(四个方向坐标查找,去掉阻塞点,已经走过的节点也为阻塞点),如果不通则将栈原创 2013-06-15 19:55:56 · 2106 阅读 · 0 评论 -
解24点的笨方法
24 点游戏//a ,b,c,d 分别是4张牌的点数,result 保存表达式bool To24Point(int a,int b int c,int d,string &result)学了二叉树遍历的都知道,后续遍历可以消除表达式的符号。因此24点最后的表达式就是 a b c d op1 op2 op3 据此 就是求 abcd op1 op2 op3 的 组合排列个数a原创 2013-06-14 11:07:30 · 1543 阅读 · 2 评论