
Algorithms & Data Structure
文章平均质量分 69
刷题/基础数据结构和高级数据结构练手
《Introduction to Algorithms》
keneyr
一个兴趣广泛/想成为大佬 且 未遂的二道小贩子
展开
-
LeetCode-二叉树前中后序遍历迭代版
前序遍历class Solution {public: vector<int> preorderTraversal(TreeNode* root) { vector<int> res; stack<TreeNode*> s; while(root || !s.empty()) { while(root) { res.p原创 2021-06-11 20:23:47 · 877 阅读 · 0 评论 -
链表浅析(一)
这里只是在c和指针里面简单讲述,重在搞懂语言和思路,具体的操作和代码在数据结构里才会齐全。 一、概念 单链表:每个节点包含一个指向链表下一节点的指针,链表最后一个节点的指针字段的值为NULL,表明链表后面不再有其他节点。 为了记住链表的起始位置,可以使用一个根指针(root pointer),根指针指向链表的第一个节点。根指针不包含任何数据。 定义结构体如下:typedef struct N原创 2016-01-05 19:06:04 · 666 阅读 · 0 评论 -
链表浅析(二)
一、基本概念 接上次内容,讲双链表。 双链表,顾名思义,就是每个节点都有两个指针,分别指向下一个节点和上一个节点。双链表之于单链表的好处是,能够从尾巴到头遍历链表,更加方便。但是也有不足之处,多了指针,操作也相对的麻烦。typedef struct NODE{ struct NODE *fwd; struct NODE *bwd; int value;}Node;下面原创 2016-01-07 21:34:38 · 465 阅读 · 0 评论 -
LeetCode --盛最多水的容器
原题地址下面给大家朗诵一首《Oh yeah & the f*[B–]》(Inspired by Rick and Morty)虽然双指针和动态规划抖动翘臀轻摇但我苦思冥想不懂俩玩意儿怎么操刀此题最终指鹿为马,暴力f*[B–]O(n2)O(n^2)O(n2)oh yeah~凯旋而归超超超超时接下来是非正片时间,Inspired by LeetCode Solution 官方:证明为什么双指针的做法是正确的?双指针代表了什么?双指针代表的是 可以作为容器边界的原创 2021-06-04 10:56:24 · 265 阅读 · 0 评论 -
堆排序及数据结构中的堆
数据结构-堆说起堆,程序员一般都会想到:堆排序/堆栈(其实就是栈)/堆内存~它们之间有什么区别呢?堆这个数据结构又可以干啥呢?堆内存VS数据结构中的堆数据结构中的堆是一个完全二叉树,常用来实现堆排、优先级队列等;而堆内存是内存中的堆,我们在C++编程的时候,常说通过malloc()或者new()来申请内存,程序员对这块内存进行管理,意思就是对这块堆内存管理。它们是两个概念哦,基本可以认为没有交集(那么为啥会叫同一个名字呢?)Why are two different concepts both原创 2021-01-19 09:56:42 · 344 阅读 · 0 评论 -
十大经典排序算法
https://github.com/hustcc/JS-Sorting-Algorithm原创 2020-01-11 03:46:06 · 244 阅读 · 0 评论 -
二叉树如何根据前两种遍历求第三种遍历
这种活计刷个题就明白了,不过在刷题之前推荐读者先把二叉树遍历的概念大致浏览一下,请看该博客:二叉树遍历接下来小二就上热气腾腾的题啦,客官请慢用~先序+中序---->后序对某二叉树进行先序遍历的结果是ABDEFC,中序遍历的结果是DBFEAC,则后序遍历的结果是:解析:先序:根->左->右、中序:左->根->右,后序:左->右->根。...原创 2020-01-09 14:04:08 · 1327 阅读 · 2 评论 -
二叉树遍历
真是奇了怪了。。我的博客分类里怎么都没有数据结构呢。。这么重要的东西。。。今天就来添个二叉树,但是重点讲基础,实现这种东西就先不复习了。本博属转载,原创博客链接:https://www.cnblogs.com/songwenjie/p/8955856.html二叉树遍历方法:前序遍历:递归方式实现前序遍历具体过程:先访问根节点 再序遍历左子树 最后序遍...转载 2019-07-17 23:57:38 · 213 阅读 · 0 评论 -
单链表反转
本博讲的是单链表反转复杂度为O(1)的方法,并给出了完整的c++试验代码。可先观看该博的理论讲解,讲的非常好:单链表反转(倒置)问题然后,上代码:/*链表倒序,用最简单的方法,复杂度为O(1)本链表是有头结点的,注意头结点和头指针的区别*/#include <iostream>using namespace std;struct LinkList{...原创 2019-08-15 14:53:35 · 178 阅读 · 0 评论 -
模式识别之Shape Context---利用Shape Context进行形状识别
本文主要是形状轮廓匹配中的ShapeContext算法。本文属于转载。原文讲的够好了。原文:https://www.cnblogs.com/pengkunfan/p/4433510.html什么是Shape Context Shape Context是一个用于形状识别的,非常经典的特征(一串便于计算机处理的数字)提取方法,它由Serge Belongie和Jitendra ...转载 2019-05-20 22:48:18 · 2330 阅读 · 0 评论 -
匈牙利算法
英文版的讲的很详细:http://www.hungarianalgorithm.com/examplehungarianalgorithm.php中文版的可以参考该博主:https://blog.youkuaiyun.com/qq_33829154/article/details/62425921匈牙利算法的流程:匈牙利算法包含四步。前两步一次执行完,第三步和第三步会重复执行直到最优...原创 2019-05-20 17:01:14 · 4952 阅读 · 0 评论 -
LeetCode--宝石与石头
这个题很简单,直接用c写了。。。可以直接暴力破解,但是我觉得用ASCII码还可以接受,就这么写了。感觉这种方法并不是特别好。#include <stdio.h>#include <string.h>int numJewelsInStones(char* J, char* S) { int result = 0; int a[85]={0}; wh...原创 2018-12-02 17:28:56 · 307 阅读 · 0 评论 -
LeetCode--键盘行
撸了一道跟哈希有点关系的算法。想法就是----妈妈我要好好学习C++以及C++11真棒还有STL牛逼!给出code记载一下,防止以后忘了。。。。用的DEV-C++或者VS2013都可以#include <iostream>#include <vector>#include <set>#include <unordered_set>#...原创 2018-12-02 17:19:51 · 379 阅读 · 0 评论 -
LeetCode-TwoSum
唉,出来混,早晚都要还的。当年不知道潜心学算法,现在一把年龄了被社会分分钟教做人。。。从今天开始要刷题锻炼思维了。---------------------------------------------------------------------------------------------------------------------------------------------...原创 2018-11-11 13:03:29 · 174 阅读 · 0 评论