深度优先算法与广度优先算法可谓是图论中的两个基础算法。本科时候被这两个算法折磨的也是很惨。今天来分析一下DFS的过程。 首先我们介绍一下图的表示方式。图是由一组顶点和一组能够将两个顶点相连的边组成的。 我们可以用邻接矩阵…
标签:算法
声波传输设计过程总结一
刚进项目组,老大给了我篇文档,让我参考。是通过时域脉冲计数来表示开始结束标志位、0和1的,我觉得这种方法很容易受噪声的干扰,因而对声波传输这块进行了调研。 &nbs…
完成变量(一种简单的信号量)
struct completion: 有的时候我们需要在一个线程里面发起另外一个线程里的某些动作,然后等待另外一个线程的动作完成.这个我们可以用completion.这是信号量的一种简单实现. 完成变量是信号量的一种简单…
自定义哈希函数
每种数据类型都需要相应的 hash function。在C++中,一些内置类型不需要自定义哈希函数,例如,int,double,string等。但是一些自定义的数据类型就需要自定义哈希函数了。例如,下面定义了直线Line…
一个数组除了一个元素只出现一次,其他元素全都出现了三次,输出出现一次的元素
#include #define N 10 int main() { int a[N] = {222,115,810,100,115,810,222,222,810,115}; int i, j, count…
动态规划(二)
例:给你一个数组arr,和一个整数aim。如果可以任意选择arr中的数字,能不能累加得到aim,返回true或者false。 测试数据: int[] arr = { 1, 4, 8 }; int aim = 12; 1.…
第六届蓝桥杯校内选拔赛C/C++高职组解题(4)
1193是个素数,对它循环移位后发现: 1931,9311,3119也都是素数,这样特征的数叫:循环素数。 你能找出具有这样特征的5位数的循环素数吗? 当然,这样的数字可能有很多,请写出其中最大的一个。 注意:答案是个5…
[转] Slope one:简单高效的推荐算法
推荐系统最早在亚马逊的网站上应用,根据以往用户的购买行为,推荐出购买某种产品同时可能购买的其他产品,国内做的不错的当当网,有时候买书,它总能给我推荐出我感兴趣的其他书来,也算是技术极大的促进了销售。 一般的协同过滤算法,…
Java 判断两个字符串是否由相同的字符组成
问题:由相同的字符组成是指两个字符串,字母以及各个字母的个数是相同的,只是顺序不同。如:“aaaabbc”与“abcbaaa”是由相同字符组成。 方法一:排序法,也是最容易想到的方法,将两个字符串转换为字节数组,分别排序…
线段树入门
线段树是个好算法,可以解决很多线段重合和面积重合的问题,网上这篇博客浅显的说明了线段树的一些问题,记录下来,防止以后忘记 好久没写过算法了,添一个吧,写一个线段树的入门知识,比较大众化。 上次在湖大,其中的一道题数据很强…
剑指offer笔记
27.二叉搜索树与双向链表 递归:使用中序遍历,找到最左边的节点(即最小的节点,作为节点头)作为当前头节点,返回,上一节作为当前节点,当前节点指向头节点,头节点也指向当前节点,当前节点作为头节…
常见数据结构面试题目(三)
题目: 输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。…