随笔分类 -  数据结构与算法

摘要:leetcode中一个题目,让统计二进制中1的个数。首先第一个想法便是用位运算一位一位的去判断,这样便可以了,但是题目却有个要求复杂度小于 O(n*sizeof(integer))。 这样便无法按着integer的size去逐个计算。 n&(n-1)每次计算都会将最末尾的1去掉这样就可以更快的计算出 阅读全文
posted @ 2018-06-07 21:12 Mr.Struggle 阅读(798) 评论(0) 推荐(0) 编辑
摘要:递归实现 迭代实现 递归实现在数组较大的情况下会出现“爆栈”(栈的深度为log₂N),为了避免出现这种情况尽量使用非递归的方式。 阅读全文
posted @ 2018-04-07 22:39 Mr.Struggle 阅读(139) 评论(0) 推荐(0) 编辑
摘要:#include typedef struct node{ char name[24]; char id[19]; int num; node * pre; node * next; }node; node nhs[100004]; node ihs[100004]; node ihspool[100004]; int iindex = 0; node ... 阅读全文
posted @ 2017-12-20 10:31 Mr.Struggle 阅读(469) 评论(0) 推荐(0) 编辑
摘要:本帖主要内容转自:https://www.61mon.com/index.php/archives/183/ next函数 优化的next函数 Kmp算法 阅读全文
posted @ 2017-09-25 23:34 Mr.Struggle 阅读(169) 评论(0) 推荐(0) 编辑
摘要:预备函数: 将参数转化为二进制数后最后一位1所在的位置,并将此位置上的1转化为十进制。 修改数据: 修改原始数据某一元素的值 求前k项和: 只需要把e(k)以及其前驱结点的值累加即可 阅读全文
posted @ 2017-09-19 16:56 Mr.Struggle 阅读(115) 评论(0) 推荐(0) 编辑
摘要:#include #include #include #include using namespace std; typedef struct node{ int data; int qnum; struct node * next; }node; typedef struct Linkqueue{ node * front; node * rear; }Linkqueue... 阅读全文
posted @ 2017-09-06 19:23 Mr.Struggle 阅读(190) 评论(0) 推荐(0) 编辑
摘要:#include int book[10001]; int add[4]; int one[10001]; int two[10001]; void fun(int x){ int temp=x; int y=x; int t=0; while(x){ add[t]=x%10; t++; x=x/10; } ... 阅读全文
posted @ 2017-03-27 20:34 Mr.Struggle 阅读(201) 评论(0) 推荐(0) 编辑
摘要:在一个map[100][100]中0代表空地,1代表人。僵尸能够上下左右感染,每五秒感染成功一次,求出最后感染需要的时间,即存活的人。 阅读全文
posted @ 2017-03-23 14:34 Mr.Struggle 阅读(369) 评论(0) 推荐(0) 编辑
摘要:本题目的主要难点在如何寻找最后一层的数,利用book标记数组可以很好的解决问题。book=0的时候说明没被连接过,若要连接时,将book等于上一层book+1. 需要注意的是,对于图的问题建立邻接矩阵是非常省时间的方法。类似这个道题,我没有用邻接矩阵,因此每次都要进入150的for循环。但是如果用矩 阅读全文
posted @ 2017-03-22 15:49 Mr.Struggle 阅读(242) 评论(0) 推荐(0) 编辑
摘要:先序遍历:根 左 右 中序遍历:左 根 右 后序遍历:左 右 根 我们可以先从先序遍历中找到根节点,由于知道了根节点那么可以依靠中序遍历找到左子树,右子树。这样再去先序遍历中找到左子树的根节点,然后再依靠中序遍历找到左子树的左子树(右子树同理)。这样层层递归就能还原二叉树。之后求出后序遍历。 感谢原 阅读全文
posted @ 2017-03-20 15:58 Mr.Struggle 阅读(365) 评论(0) 推荐(0) 编辑
摘要:题目的是随机拿6张卡牌,卡牌上有0~9的数字。一种情况有三张连续的卡牌我们称之为run(类似4,5,6),第二种情况有三张相同卡牌我们称之为triplete(类似2,2,2)。 如果这六张牌有两个run或者两个triplete或者一个run一个triplete。我们称之为baby-gin。 例如 6 阅读全文
posted @ 2017-03-16 15:18 Mr.Struggle 阅读(372) 评论(0) 推荐(0) 编辑
摘要:题目的意思是在一个由ox组成的数组中,输出o,o,x....x,o,o,x.....x,o的个数,其中x.....x表示最少一个x,同时每个字符只能使用一次(难度略降低)。 代码如下 阅读全文
posted @ 2017-03-16 13:58 Mr.Struggle 阅读(260) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示