数据结构
东山阿强
流媒体
展开
-
排序面试该记忆的点
口诀1.关于稳定性:不稳定:快选堆希(快速排序、选择排序、堆排序、希尔排序)稳 定:插冒归计基(简单插入排序、冒泡排序、归并排序、计数排序、基数排序)2.关于移动次数和关键字顺序无关的排序顺口溜:一堆(堆排序)海龟(归并排序)选(选择排序)基(基数排序)友分类(1)、插入排序:直接插入排序、二分法插入排序、希尔排序。(2)、选择排序:简单选择排序、堆排序。(3)、交换排序:...原创 2020-05-08 10:32:20 · 254 阅读 · 0 评论 -
背包问题的状态转移方程和应用
转移方程dp[j] = max(dp[j], dp[j-w[i]] + v[i])0-1背包为了保证状态正确转移,必须保证在每次更新中确定状态dp[j]时,dp[j-w[i]]尚未被本次更新修改。 for(int i = 0; i < n; i++) { for(int j = m; j >= w[i]; j--) { dp[j] = Math.max(dp[j],...原创 2020-04-07 21:23:15 · 362 阅读 · 0 评论 -
图论(java)
边class Edge{ int from; int to; int length; Edge(int x, int y, int z){ from = x; to = y; length = z; }}邻接矩阵邻接表并查集判断任意两个元素是否属于同一个集合(find)按照要求合并不同的集合(union)initial函数public static v...原创 2020-04-05 19:45:01 · 303 阅读 · 0 评论 -
leetcode专题 111. 二叉树的最小深度(C语言)
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */int minDepth(struct TreeNode* root) { // 递归实现...原创 2019-09-09 16:10:30 · 271 阅读 · 0 评论 -
leetcode 104. 二叉树的最大深度(C语言)
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */int maxDepth(struct TreeNode* root){ if(!roo...原创 2019-09-09 16:08:45 · 325 阅读 · 0 评论 -
leetcode专题 226. 翻转二叉树(C语言)
/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */struct TreeNode* invertTree(struct TreeNode* roo...原创 2019-09-07 14:25:29 · 404 阅读 · 0 评论 -
leetcode专题 106. 从中序与后序遍历序列构造二叉树(C语言)
根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/construct-binary-tree-from-inorder-...原创 2019-09-06 15:23:55 · 386 阅读 · 0 评论 -
leetcode专题 105. 从前序与中序遍历序列构造二叉树(C语言)
根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-i...原创 2019-09-06 14:50:53 · 434 阅读 · 1 评论 -
leetcode专题 144. 二叉树的前序遍历(C语言)
递归,后序和中序类似,不再赘述/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; *//** * Note: The returned array ...原创 2019-09-05 21:22:14 · 301 阅读 · 0 评论 -
主元素问题 2013年算法真题思路
主元素(Majority Number)定义为数组中出现次数严格超过一半的数。找到这个数。要求使用O(1)的额外空间和O(n)的时间。初阶:有N个数,其中一个数的出现次数严格超过了一半。求这个数。进阶1:有N个数,其中两个数的出现次数都超过了⅓ ,求这两个数。进阶2:有N个数,其中一个数的出现次数严格超过了⅓,并且没有第二个这样的数。求这个数进阶3:如果数组中存在且只存在一个出现次数严格超...原创 2019-08-22 19:44:38 · 596 阅读 · 2 评论 -
codeup 1918简单计算器
#include <iostream>#include <cstdio>#include <string>#include <stack>#include <queue>#include <map>using namespace std;struct node { double num; //操作数 ...转载 2019-05-19 23:10:41 · 213 阅读 · 0 评论 -
二分查找
#include <iostream>using namespace std;int binarySearch(int A[], int left, int right, int x) { int mid; while (left <= right) { mid = (left + right) / 2; if(A[mid] == x) return mid;...原创 2019-04-09 11:40:08 · 156 阅读 · 0 评论 -
数据结构线性表(C语言)
顺序表的结构体定义#define maxSize 100typdef struct{ int data[maxSize];//存放顺序表元素的数组 int length;//存放数据表的长度}Sqlist; //顺序表类型的定义或者int A[maxSize];int n;单链表结点定义typedef struct LNode{ int data;//存放数据域 s...原创 2019-03-04 13:00:49 · 326 阅读 · 0 评论