漫鱼

计科专业大学生

排序:
默认
按更新时间
按访问量

动态规划练习

数字和为sum的方法数 给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数。 当两种选取方案有一个数字的下标不一样,我们就认为是不同的组成方案。 输入 5 15 5 5 10 2 3 输出 4 思路:暴力不行。sum值是指定的,但是解空间肯定...

2018-08-13 17:48:04

阅读数:29

评论数:0

海量数据处理(转)

海量数据处理(转) 位图和布隆过滤器实现: https://blog.csdn.net/mxrrr_sunshine/article/details/80451189 常见问题: https://blog.csdn.net/zhangye3017/article/details/79431...

2018-06-27 15:02:26

阅读数:648

评论数:0

哈希搜索(多次探测,哈希桶)

哈希搜索(闭散列,开散列) 为什么提出哈希? 顺序搜索和二叉树搜索中,元素存储位置和元素关键码之间没有联系。因此在查找一个数据时,必须经过关键码的多次比较,搜索效率取决于比较次数。而一个理想的搜索是不经过比较,直接拿出数据,建立关键码和存储位置的关系。 哈希冲突的产生与解决 ...

2018-06-26 15:22:45

阅读数:655

评论数:0

排序算法总结

排序算法总结 直观感受排序算法:https://www.cnblogs.com/onepixel/articles/7674659.html 排序算法总结 插入排序 直接插入排序 希尔排序 选择排序 直接选择排序 堆排序 交换排序 冒泡 快排 ...

2018-05-31 17:41:34

阅读数:591

评论数:0

有穷状态机思想——注释转换

有穷状态机思想——注释转换 画状态转换图 所谓自动机思想就是假设有一台机器,上面有状态指示灯,作用是通过传送带前后改变通过的物体。 当状态灯保持时,货物按一定规则输出,当状态灯突变时,货物根据另一种规则输出。 利用这种思想,可以将所有有穷的状态列出来,大大清晰了思路,只需要往每一个状态...

2018-05-18 22:57:18

阅读数:622

评论数:0

二叉搜索树探究

二叉搜索树探究 完整代码:https://github.com/zzaiyuyu/BinarySearchTree 二叉搜索树探究 插入结点 查找结点 删除结点 性能 插入结点 根据二叉搜索树的定义,左孩子<根节点值&...

2018-05-15 10:42:14

阅读数:239

评论数:0

堆及其应用(优先级队列,TopK问题,堆排序)

堆创建 插入元素 删除元素 优先级队列 TopK问题 堆排序 完整代码:https://github.com/zzaiyuyu/Heap 堆创建 首先建立一个无序完全二叉树序列,然后自底向上调整每一个非叶结点。调整规则是将调整结点值变为比左右孩子结点都小(小根堆),若不满足,...

2018-05-15 10:41:42

阅读数:223

评论数:0

二叉树非递归遍历,重建二叉树等面试题

二叉树非递归遍历 先序 头结点入栈,每次循环顺着左路一直找到底,先打印结点,遇右压栈就可以了。 void PreOrderNorOP(pBTNode pRoot) { Stack s; init(&s); pushBack(&a...

2018-05-11 17:20:11

阅读数:242

评论数:0

栈的相关面试题

栈的相关面试题 完整代码:https://github.com/zzaiyuyu/InterviewOfStack 实现一个栈,能在O(1)时间内返回栈最小值 用一个额外的栈存放当前栈的最小值。 push:当数据栈入元素时做一个判断,如果元素小于等于最小栈的栈顶元素,就给两个元素都入栈...

2018-05-07 17:36:32

阅读数:211

评论数:0

链式队列及相关操作

链式队列及相关操作 完整代码:https://github.com/zzaiyuyu/Queue queue.h #pragma once #define DataType int typedef struct Node { DataType data; struct N...

2018-05-07 17:35:53

阅读数:216

评论数:0

链式二叉树——操作总结

链式二叉树——操作总结 二叉树中反复使用递归思想,掌握寻找子问题的能力就能解决所有二叉树问题。 非递归先序遍历需要用到数据结构栈,下文提供两种思路解决。层序遍历用到队列,也即广度遍历思想。 完整代码github:https://github.com/zzaiyuyu/BinTree B...

2018-05-05 23:06:36

阅读数:243

评论数:0

活动选择问题——贪心算法与动态规划

最优子结构 设Sij表示活动i开始时间后且活动j时间结束前的活动集,假设有一个最大兼容活动子集Aij,其中包括了活动k。由于最优解包含活动k,可以得到两个子问题:寻找Sik以及Skj中的兼容活动子集。原问题解变为:Aij = Aik ∪k ∪Akj。 有了最优子结构,意味着可以用动态规划解。 ...

2018-05-05 16:51:07

阅读数:265

评论数:0

最长公共子序列——动态规划

最长公共子序列——动态规划 本题的最优子结构比较难找,书上直接给出了定理,定理给出三种情况 两个串最后一个字母相等,那么最长序列等于两个串都除去最后一个字母的最长序列+1 最后一个字母不相等,最长序列是两个串各除去最后一个字母后的最长序列的较大者。 这样原问题的最优解就包含了子问题的最优...

2018-05-03 10:25:22

阅读数:221

评论数:0

矩阵链乘——动态规划

普通矩阵相乘算法 //普通矩阵相乘 #define ROW_A 2 #define COL_A 2 #define COL_B 3 void matrix_mul(int matA[ROW_A][COL_A], int matB[2][COL_B], int C[ROW_A][COL_B])...

2018-05-02 20:54:55

阅读数:225

评论数:0

钢条切割——算法导论

自顶向下解法 分解:将长度为n的钢条切割问题转为在i下标切割后长度为n-1的子问题 解决:递归求解子问题,每次长度参数-1,在n=0即不用切时递归终止 合并: 1. 每个子问题的解+前一段切割长度的arr[i]值 成为前一子问题的最优解 2. 原规模问题中的最优解是所有子问题解中值最...

2018-04-26 11:15:56

阅读数:215

评论数:0

最大子数组问题——算法导论

分治法思想 分解:子数组一定被原数组左边或者右边包含,或者跨越原数组mid下标。 解决:前两种完全包含的情况形成子问题递归求解,并且缩小了问题规模,后一种是我们要解决的问题。 合并:剩余的问题是求跨越mid的最大子数组,并且从三种情况中选出和最大的。 另外 算导中伪代码返回的是三元组,这...

2018-04-25 22:12:10

阅读数:222

评论数:0

栈应用——括号匹配和逆波兰表达式

Stack声明见前文:https://blog.csdn.net/hanzheng6602/article/details/80053607 括号匹配 匹配串类似 “(()()abc{[]})” 思路:一个指针遍历串,如是左括号入栈,右括号则出栈并于当前指针比较是否匹配。再指针...

2018-04-25 12:23:41

阅读数:221

评论数:0

求解带环迷宫的最短路径

求解带环迷宫的最短路径 Stack和Position的声明请参考前文(栈走简单迷宫):https://blog.csdn.net/hanzheng6602/article/details/80053607 结果: 思路:和前文递归思路类似,只是为了解决绕环问题的话,需要对结点做个标记,用来更...

2018-04-23 18:01:11

阅读数:258

评论数:0

利用栈走迷宫

预备知识 前置声明头文件:https://blog.csdn.net/hanzheng6602/article/details/80031130 动态顺序表:https://blog.csdn.net/hanzheng6602/article/details/79917391 拓展:带环...

2018-04-23 17:31:09

阅读数:319

评论数:0

带环链表求入口结点——带环链表处理

求两个单链表相交的交点— 链表不带环 判断链表是否带环,返回相遇点 获取环的入口点 判断两个链表是否相交,链表可能带环 求两个单链表相交的交点— 链表不带环 不带环的两个链表,只有两种情况。一种是平行也就是不相交,要不然就会相交形成Y型或者头尾相连的一字型。而只要相交,两个...

2018-04-19 16:55:14

阅读数:232

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭