菜鸟笔记
提升您的技术认知

算法笔记 第7页

优化算法——模拟退火算法

菜鸟阅读 : 567赞(0)

模拟退火算法原理 爬山法是一种贪婪的方法,对于一个优化问题,其大致图像(图像地址)如下图所示: 其目标是要找到函数的最大值,若初始化时,初始点的位置在 C C C处,则会寻找到附近的局部最大值 A A A点处,由于 A A A点出是一个局部...

有效的括号

菜鸟阅读 : 842赞(0)

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "...

剑指Offer编程练习008——跳台阶

菜鸟阅读 : 813赞(0)

题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 思路一:  a.如果两种跳法,1阶或者2阶,那么假定第一次跳的是一阶,那么剩下的是n-1个台阶,跳法是f(n-1);  ...

剑指Offer编程练习029——最小的K个数

菜鸟阅读 : 489赞(0)

题目描述 输入n个整数,找出其中最小的K个数。 例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。 class Solution { public: vector<int> GetLeastNu...

Merkle Tree(默克尔树)算法解析

菜鸟阅读 : 952赞(3)

Merkle Tree概念 Merkle Tree,通常也被称作Hash Tree,顾名思义,就是存储hash值的一棵树。Merkle树的叶子是数据块(例如,文件或者文件的集合)的hash值。非叶节点是其对应子节点串联字符串的hash。[1...

二叉树的前序、中序、后序

菜鸟阅读 : 840赞(3)

一、概念 二叉树遍历分为三种:前序、中序、后序,其中序遍历最为重要。 二、特点 A:根节点、B:左节点、C:右节点; 前序顺序是ABC(根节点排最先,然后同级先左后右); 中序顺序是BAC (先左后根最后右); 后序顺序是BCA(先左后右最...

算法时间复杂度和空间复杂度

菜鸟阅读 : 2041赞(3)

1.什么是算法 算法(Algorithm)是对某一特定类型的问题求解步骤的一种描述,是指定的有限序列,字面意思就是用于计算的方法。 算法特性 1.有穷性:一个算法总是会再执行有限次数后停止。 2.确定性:每个步骤都有确定的含义,对相同的输入...

实现带头双向循环链表

菜鸟阅读 : 722赞(5)

顺序表的实现 单链表的实现 一、定义 从图示可清楚看到它有头结点,每个结点都有双指针,指向前一个结点和后一个节点,根据图示进行定义 typedef int Datatype; typedef struct ListNode { Dataty...

单链表的实现

菜鸟阅读 : 1180赞(5)

##  链表的概念  ## 链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。 1.概念及定义 1.1单链表的概念 单链表是一种链式存取的数据结构,,链表中的数据是以...

顺序表的实现

菜鸟阅读 : 903赞(5)

1.顺序表的概念 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 顺序表一般可以分为:静态顺序表和动态顺序表 2.静态顺序表       &...