![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法学习
文章平均质量分 67
Luts
图像初学者 关注互联网
展开
-
【leetcode3】最大子串长度
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所...原创 2019-11-19 22:09:57 · 300 阅读 · 0 评论 -
【leetcode3】两非空链表相加
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> ...原创 2019-11-19 20:16:29 · 399 阅读 · 0 评论 -
【leetcode2】整数反转
#整数反转题目:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。来源:力扣(L...原创 2019-11-19 18:13:07 · 104 阅读 · 0 评论 -
【leetcode1】两数之和
leetcode1 两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0,...原创 2019-11-19 11:45:16 · 102 阅读 · 0 评论 -
最大子序列的和问题
问题描述:给出一个整数数组:a1, a2, a3, … … an;求最大的子序列和(如果数组都为负数,则为0)方法1:遍历求解 从数组的首元素a1开始遍历,一直累加ak,求出最大值。maxsum: 要求的最大子序列和, tempsum: a[i]+a[i+1]+a[i+2]+…+a[n-1];(0<=1//O(N^2)int maxfun(int a[], int n){原创 2015-07-21 16:17:59 · 565 阅读 · 0 评论 -
车牌检测--master opencv
自动车牌识别(Automatic Number Plate Recognition,ANPR),使用一种光学字符识别(O菩提差了Character Recognition, OCR)和其他方法(如图像分割与检测)来获取车辆牌照的监控方法。 对于一个ANPR系统,最好的是使用一个红外(IR)摄像机来获得车辆牌照,因为在分割这一步,对检测和OCR分割很简单、干净,误差小。这由光学的一下基本原理决定的。原创 2015-04-19 19:00:00 · 2972 阅读 · 0 评论 -
字符串匹配之KMP算法详解
字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串”BBC ABCDAB ABCDABCDABDE”,我想知道,里面是否包含另一个字符串”ABCDABD”? 许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。 这种算法不太容易理解,网上有很多解释,但读起来都很费劲。转载 2015-07-06 14:20:00 · 656 阅读 · 0 评论 -
感知机与多层网络
[toc] 之前做车牌识别的时候,在字符识别(OCR)时,使用的是人工神经网络(ANN),这里总结介绍一下人工神经的相关知识。1.神经网络1.1 定义人工神经网络(ANN)又称神经网络(NN),是一种模拟人脑的学习系统的生物模型。神经网络的由大量相互连结的节点构成一个复杂的网络结构,每个节点都有多个输入和一个输出,并且每个输入对应有一个权重因子,节点的输出就是所有这些输入与权重乘积的耦合。 通俗原创 2015-07-26 18:44:22 · 6668 阅读 · 0 评论 -
谷歌图片搜索
对于像谷歌、百度识图这种图像搜索的算法,主要有三个步骤:将目标图片进行特征提取,描述图像的算法很多,用的比较多的是:SIFT描述子,指纹算法函数,bundling features算法,hash function(散列函数)等。也可以根据不同的图像,设计不同的算法,比如图像局部N阶矩的方法提取图像特征。将图像特征信息进行编码,并将海量图像编码做查找表。对于目标图像,可以对分辨率较大的图像进行降采原创 2015-06-06 11:59:30 · 1308 阅读 · 0 评论 -
伸展树Splay Tree
伸展树伸展树的实现节点定义伸展树的遍历查找给的关键值key的节点查找伸展树中的最小关键值最大关键值的节点伸展树的旋转插入节点创建伸展树节点创建节点key并旋转为根节点删除key节点完整的测试代码伸展树与平衡树(AVL)一样,伸展树(splay tree)也是二叉树的一种,它能在O(log n)内完成插入、删除和查找操作。伸展树的特点: 1. 假设当前节点X的关键值为key,则原创 2015-05-17 10:23:47 · 719 阅读 · 0 评论 -
插入排序与希尔排序
插入排序插入排序由N-1趟排序组成,对于P =1趟到P = N -1趟,插入排序保证从位置0到位置P上的元素为已排序状态。即其基本思想是:把n个待排序的元素看成一个有序表和无序表。开始时有序表中只含有一个元素,无序表中含有n -1个元素,排序过程中每次从无序表中取出第一个元素,将它插入到有序表中,使之成为新的有序表,重复n-1次完成排序过程。C语言实现根据定义,可以写出:void insert_so原创 2015-05-14 08:40:41 · 423 阅读 · 0 评论 -
数
一颗树是一些节点的集合,这些集合可以是 空集;若非空,则一颗树由称作根(root)的节点r以及0个或多个非空的字数T1, T2, T3, …, Tk组成,这些子树中的每一颗的根都有来自根r的一条有向边(edge)所连接。每一颗子树的根叫做跟r的儿子(child),而r是每一颗子树的根的父亲(parent)。一颗具体的树:1.树的相关术语节点的度:一个节点含有的子树的个数称为该节点的度;树的度:一棵树原创 2015-04-30 20:17:03 · 507 阅读 · 0 评论 -
AVL树
AVL树破坏平衡的四种情况LL旋转RR旋转LR旋转RL旋转AVL树的基本操作测试范例AVL树AVL树是带有平衡条件的二叉查找树,最简单的定义为:一颗AVL树是其每个节点的左子树和右子树的高度最多相差1的二叉查找树。C语言定义:struct AvlNode;typedef struct AvlNode *position;typedef struct AvlNode *avlTree原创 2015-05-13 20:46:33 · 543 阅读 · 0 评论 -
二叉查找树 ADT
二叉树是每个节点最多有两个子树的数结构,即左子树、右子树。二叉树的第i层至多有2^(i-1)个节点,深度为k的二叉树至多有(2^k) - 1个节点。二叉查找树:对于树中的每个节点X,他的左子树中所有关键字值小于X的关键字值,而它的右子树中所有关键字值大于X的关键字值。二叉搜索树可以方便的实现搜索算法。在搜索元素x的时候,我们可以将x和根节点比较:如果x等于根节点,那么找到x,停止搜索 (终止条件)原创 2015-05-02 11:19:08 · 531 阅读 · 0 评论 -
栈 ADT 结构
栈(stack)是限制插入与删除只能在一个位置上进行的表,该位置叫做栈的顶(top)。栈的基本操作包括进栈(push)即插入、出栈(pop)即删除。不允许对空栈进行pop操作。栈与队列不同,队列是先进先出(FIFO),栈是后进先出(LIFO),就是说只有栈顶的元素是可以被访问的。与队列相似,栈也可以通过链表或者数组的形式实现。在单链表的顶端插入可以实现push,删除顶端元素实现pop,Top操作考察原创 2015-04-30 10:38:21 · 599 阅读 · 0 评论 -
队列的基本操作
队列是链表的一种形式,队列具有先进先出(FIFO)的特性,即使用队列时,插入在一端进行,而删除在另一端进行。队列的基本操作是Enqueue(入队),他是在表的末尾(rear)插入一个元素,还有Dequequ(出队),即删除(或返回)在表的开头(队头,front)的元素。队列可以使用链表或者数组来实现。基本的操作示例如下:链表实现:#include <stdlib.h>#include <stdio原创 2015-04-25 09:49:44 · 505 阅读 · 0 评论 -
快速排序
快速排序原理:每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的右边。#include <stdio.h>#include <stdlib.h>#include <string.h>#define NN 10#define MM 20void sort(int *a, int left, int right){ if(left原创 2015-04-24 13:29:24 · 403 阅读 · 0 评论 -
链表的基本操作
总结一下链表的一些基本操作:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#define N 12#define M 20typedef int elemType;//定义单链表节点类型typedef struct Node{ elemType element; No转载 2015-04-23 21:05:50 · 790 阅读 · 0 评论 -
算法智力题
挺有意思的三道智力题,学习与分享一下。。转于:http://blog.csdn.net/firefly_2002/article/category/1217507一、一百个灯泡排成一排,第一轮将所有灯泡打开;第二轮每隔一个灯泡关掉一个,即排在偶数的灯泡都被关掉。第三轮每隔两个灯泡,将开着的灯泡关掉,关掉的灯泡打开。以此类推,第100轮的时候,还有几盏灯泡亮着?你知道答案吗?别人的算法:转载 2015-01-25 19:23:08 · 1718 阅读 · 0 评论