![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
时间不早了sss
这个作者很懒,什么都没留下…
展开
-
算法(java)
题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1] 输出: 1 示例 2:输入: [4,1,2,1,2] 输出: 4class Solution { public int singleNumber(in...转载 2018-06-10 19:47:41 · 123 阅读 · 0 评论 -
贪婪算法---哈夫曼树的构建及编码
哈夫曼树相关概念应用领域:压缩(提高了网络的传输效率)编码依据:最优二叉树(哈夫曼树)相关概念: 节点的权(w):赋予叶子结点有意义的值节点的路径长度(L):从根节点到当前节点的个数节点的带权路径长度:w*L一棵二叉树的带权路径长度:二叉树的所有叶子节点的带权路径长度之和最优二叉树:二叉树的带权路径长度最小最优二叉树的特点: 最优二叉树没有单亲节点,只有双亲节点和叶子结点...原创 2018-09-11 11:30:56 · 857 阅读 · 0 评论 -
二叉树按层遍历----非递归实现
算法思路用队列存储左右子女的地址。当从队列中拿出一个节点时,将这个节点的左右子女的地址也放到队列中代码#include <stdio.h>#include <stdlib.h>//二叉树节点的结构typedef struct node{ int data;//存储节点的值 struct node *left,*right;//指向二叉...原创 2018-09-12 10:47:04 · 673 阅读 · 0 评论 -
二叉树的前、中、后序遍历----非递归实现
前言二叉树的前序、中序、后序遍历的非递归实现均采用栈作为中间存储前序遍历思路:现将根节点存储到栈中,然后开始循环:从栈中拿出一个节点,相应的就要将这个节点的非空右子女和非空左子女依次放入栈中。直至栈为空。代码://非递归前序遍历void PreOrder(BTNode *root,int n){ BTNode **S;//存储栈 int top;//栈...原创 2018-09-13 09:46:28 · 191 阅读 · 0 评论 -
贪婪+回溯算法------迷宫问题(递归实现)
前提很明显,初始迷宫的路和墙需要定义和保存,(这里用的迷宫用数组存储,用1表示墙,用0表示未走过的路。)需要明确判断下一步朝哪个方向走?(这里的方向是:下-&gt;右-&gt;上-&gt;左,这里将方向用一个二维数组来存储)如何判断下一步是否在迷宫外?这里的处理是在迷宫数组外加“一堵墙”。这堵墙设值为1。算法过程描述...原创 2018-09-18 11:43:12 · 1266 阅读 · 0 评论 -
贪婪算法-----装箱问题
贪婪算法贪婪准则 算法在推进的过程中,每一步都追求最优解贪婪准则一旦确定,中途不能改变贪婪算法求出的最终解不一定是最优解装箱问题问题描述:有若干个体积为V的箱子,有n个体积为V0,V1,V2,V3…….Vn-1的物品要求:把所有物品都装入箱子中,使打开的箱子尽可能少解决思路贪婪准则 将所有物品按体积的降序排序每次取出一个物品(当前未装入物品的体积最大值)遍历所...原创 2018-09-08 22:43:24 · 702 阅读 · 0 评论 -
时间复杂度和空间复杂度
转载自:https://blog.csdn.net/leikun153/article/details/79143892先简要介绍一下:算法复杂度分为时间复杂度和空间复杂度。其作用:时间复杂度是指执行这个算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。时间和空间(即寄存器)都是计算机资源的重要体现,而算法的复杂性就是体现在运行该算法时的计算机所需的资源多少。时...转载 2018-11-29 19:47:42 · 118 阅读 · 0 评论