- 博客(6)
- 收藏
- 关注
原创 图的一系列操作
Graph.h#pragma once#include<iostream>#include<vector>#include<unordered_map>//哈希表using namespace std;class Graph{ vector<char>vertex;//定义点集 vector<vector<int>>edges;//定义边集 unordered_map<char, int>cityIn
2020-10-24 10:09:52 133
原创 二叉树的一系列操作(**)
Btree.h先定义树的节点:struct TreeNode{ int val; TreeNode *left; TreeNode *right; TreeNode(int x):val(x),left(NULL),right(NULL){}};struct Btree{ TreeNode *root;public: void buildTree(vector<int>&a); void Layerorder(TreeNode *root);//层序遍历
2020-06-21 21:32:47 219
原创 链表的一系列操作(看不懂就画图*)
(List.h)#pragma once#include<iostream>#include<vector>using namespace std;struct ListNode{ int val; ListNode *next; ListNode(int x) :val(x), next(NULL) {}};class List{ ListNode *head;public: ListNode *bulidList(vector<int>
2020-06-08 14:50:44 546
原创 Top K问题(3种解法)
written by dylanTop K问题找到数组中最大(最小)的K个数,例如7,6,3,5,2,Top3 的意思就是 找出最小的三个数即为:3,5,2.解法1讲数组从小到大进行排序,然后取出前K个数。(先说最差的一个,为了引出后面的优化解法打铺垫)解法2利用堆来求解所以代码就是在堆排序中做出稍微的修改即可以解决topk的问题.代码如下:void adjustSort(int a[],int n,int i){int father=i;int child=2*i+1;
2020-06-04 22:19:39 6383
原创 LeetCode练习之合并两个有序数组
LeetCode入门(1)(88)合并两个有序数组void merge(vector<int>& nums1,vector<int>nums2,int m,int n){ int index=m+n-1; while(n) { if(m==0) { nums1[index--]=nums2[--n]; } else if(nums1[m-1]>nums2[n-1]) { nums1[index--]=nums1[--m];
2020-06-01 23:17:18 151
原创 常用的排序算法(C++)(记忆)
Written by Dylan桶排序int findMax(vector<int>&a){ int max=INT_MIN; for(int i=0;i<a.size();i++) { max=max>a[i]?max:a[i]; } return max;}void bucketSort(vector<int>&a){ int max=findMax(a); vector<int>bucket(max+1
2020-05-31 20:48:23 273 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人