![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
ChaoFeiLi
这个作者很懒,什么都没留下…
展开
-
LeetCode —— [1. 两数之和]
题目描述:给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]1、将求和转化为求差2、建立哈希表,通过哈希函数(数组中的值和索引分别为key-value)建立对应...原创 2022-02-26 20:49:53 · 284 阅读 · 0 评论 -
二叉树演变
链表->二叉树->二叉搜索树->平衡二叉树->红黑树二叉搜索树(1)每个节点有一个唯一的key值,且所有结点互不相同;(2)左子树所有key值小于根的key值;(3)右子树所有key值大于根的key值;(4)左右子树都是二叉搜索树。平衡二叉树(AVL树)平衡二叉树也叫自平衡二叉搜索树(Self-Balancing Binary Search ...原创 2020-02-19 13:35:31 · 440 阅读 · 0 评论 -
排序方法
C++各种排序方法:排序思想参考:https://blog.csdn.net/lipviolet/article/details/89077999#include"iostream"#include"cstdlib"#define LENGTH 10using namespace std;void swap(int &,int &);void display(i...原创 2020-01-16 11:44:40 · 126 阅读 · 0 评论 -
数据结构——二叉树的创建,先序遍历,中序遍历,后序遍历
依次输入:1 2 4 0 0 5 0 0 3 0 0表示构造一个深度为3的完全二叉树#include"iostream"#include"functional"#include"stdio.h"using namespace std;typedef struct BiTNode{ int data; BiTNode *lchild; BiTNode *rchild...原创 2019-11-21 21:53:26 · 374 阅读 · 0 评论 -
数据结构——数组和广义表(三元顺序表之一般转置和快速转置)
辛辛苦苦写的代码,点个赞再走呗里面还有注释呢#include"iostream"#include"algorithm"using namespace std;#define MAXSIZE 10typedef struct Triple{ int i; int j; int Element; Triple(int d=0,int e = 0,int f = 0){ i...原创 2019-11-20 22:00:46 · 200 阅读 · 0 评论 -
数据结构——三元组顺序表以及矩阵转置
#include"iostream"#include"algorithm"using namespace std;#define MAXSIZE 10typedef struct Triple{ int i; int j; int Element; Triple(int d=0,int e = 0,int f = 0){ i = d; j = e; Ele...原创 2019-11-20 14:47:57 · 1211 阅读 · 0 评论 -
数据结构——循环队列的初始化,插入,删除,队列长度
#include "iostream"using namespace std;#define MAXQSIZE 5typedef struct SqQuene{ int * base; int front; int rear;}SqQuene;void InitQuene(SqQuene &Q);int QueneLength(SqQuene &Q...原创 2019-11-10 23:15:38 · 1527 阅读 · 0 评论 -
数据结构——链队列的初始化,创建、出队、入队、破坏队列
#include "iostream"using namespace std;typedef struct QNode{ int data; QNode *next;}QNode,*QueuePtr;typedef struct LinkQueue{ QNode* front; QNode* rear;}LinkQueue;void InitQueue(Li...原创 2019-11-10 21:15:19 · 517 阅读 · 0 评论 -
数据结构——链式栈的初始化、进栈、出栈
#include "iostream"using namespace std;typedef struct LinkStackNode{ int data; LinkStackNode * next;}LinkStackNode,*LinkStack;void InitLinkStack(LinkStack &L);void Push(LinkStack &am...原创 2019-11-10 11:44:57 · 981 阅读 · 0 评论 -
数据结构——栈的初始化、入栈、出栈
#include "iostream"using namespace std;#define STACK_INIT_SIZE 5 //存储空间初试分配量#define STACKINCREAMENT 10 //存储空间分配增量//当分配空间地址有MAXLEN个的时候,//内存空间范围为[0,MAXLEN-1];//使得base = 0,top = MAXLEN-1...原创 2019-11-09 22:44:14 · 4308 阅读 · 0 评论 -
数据结构——双向链表的创建、插入、删除
#include "iostream"using namespace std;typedef struct DuLNode{ int data; struct DuLNode *prior; struct DuLNode *next;}DuLNode,*DuLinkList;void CreateDuLinkList(DuLinkList&L,int n);void...原创 2019-11-09 19:19:23 · 262 阅读 · 0 评论 -
数据结构——单链表创建,插入,删除,合并,双向链表
#include<iostream>using namespace std;typedef struct LNode{ int data; struct LNode *next;}LNode,*LinkList;void CreateList(LinkList&L,int n);void ShowList(LinkList&L);bool ...原创 2019-11-05 23:09:21 · 367 阅读 · 0 评论 -
数据结构——创建新链表
单链表:先进先出#include<iostream>using namespace std;typedef struct LNode{ int data; struct LNode *next;}LNode,*LinkList;void CreateList(LinkList&L,int n){ L = (LinkList)malloc(sizeof(LNo...原创 2019-11-04 21:05:58 · 467 阅读 · 0 评论 -
数据结构 —— 数组排序的方法
目录一、冒泡排序二、选择排序法三、直接插入排序四、希尔排序五、快速排序参考链接:https://blog.csdn.net/DallinC/article/details/84142209一、冒泡排序在外循环中第一次循环是i,然后在内循环中arr1[i] 和arr1[j]每一个数据进行比较,如果arr1[j] < arr1[i],把较小的值赋给arr1[i],...原创 2019-08-29 22:33:59 · 1218 阅读 · 0 评论 -
LeetCode —— 【20. 有效的括号】
JAVAclass Solution { public boolean isValid(String s) { Stack<Character> stack = new Stack<Character>(); char [] chars = s.toCharArray(); for (char c:chars){...原创 2019-08-27 21:38:14 · 100 阅读 · 0 评论 -
LeetCode —— 【21. 合并两个有序链表】
java/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode merg...原创 2019-08-27 21:40:26 · 119 阅读 · 0 评论 -
LeetCode —— 【83. 删除排序链表中的重复元素】
java/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode de...原创 2019-08-27 21:42:14 · 101 阅读 · 0 评论 -
LeetCode —— 【1047. 删除字符串中的所有相邻重复项】
javaclass Solution { public String removeDuplicates(String S) { char[] chars = S.toCharArray(); StringBuffer stringBuffer = new StringBuffer(); for (char c : chars) { ...原创 2019-08-27 22:17:55 · 133 阅读 · 0 评论 -
LeetCode —— 【225. 用队列实现栈】
本来我是使用单链表实现的(queue)但是总是报超时,没办法我只能使用了双向链表dequejavapublic class MyStack { /** * Initialize your data structure here. */ private Deque<Integer> queue; ; public MySt...原创 2019-08-28 14:34:25 · 127 阅读 · 0 评论 -
Java数据结构和算法(十四)——堆
参考链接:https://www.cnblogs.com/ysocean/p/8032660.html#_label0https://blog.csdn.net/abcd1f2/article/details/54863445https://www.cnblogs.com/skywang12345/p/3602162.html这几个链接写的非常好,我只是记录我自己需要的内容,大家可...原创 2019-08-28 17:21:30 · 171 阅读 · 0 评论 -
LeetCode —— 【703. 数据流中的第K大元素】
在获取第K大元素的时候,首先想到的应该就是如何对数据排序,但是排序总是会出现空间复杂度和时间复杂度。因为我是分类学习的,所以这个题目分配到了“堆”里面,我就查询“java 堆”,结果出现了“PriorityQueue”,然后我就学习了下这个,具体学习可以参考我的博客:https://blog.csdn.net/ChaoFeiLi/article/details/100123155然后我就发现使...原创 2019-08-28 21:40:44 · 114 阅读 · 0 评论 -
PriorityQueue排序
如何使PriorityQueue从大到小排序,因为PriorityQueue默认是从小到大排序,我们根据更改comparator这个比较器,从而实现从大到小的排序。Comparator<Integer> comparator = new Comparator<Integer>() { @Override public int compare(Integ...原创 2019-08-29 14:35:58 · 2704 阅读 · 0 评论 -
LeetCode —— 【1046. 最后一块石头的重量】
主要是使用Comparator 和PriorityQueue可以参考我的链接:(PriorityQueue的排序)https://blog.csdn.net/ChaoFeiLi/article/details/100137395import java.util.Comparator;import java.util.PriorityQueue;import java.util.Qu...原创 2019-08-29 14:55:05 · 115 阅读 · 0 评论 -
LeetCode —— 【122. 买卖股票的最佳时机 II】
题目描述:我想说下我自己的思路:假设有一个数组[3,5,7,2,5,6,3],按照上面的思路应该是7-3=4,6-2=4,然后4+4=8;其实(7-5)+(5-3)=7-5+5-3=7-3=4(6-5)+(5-2)=6-5+5-2=4这样就相当于使用贪心算法,求得局部最优,把局部最优结合就是整体最优 public int maxProfit(int[] pric...原创 2019-08-29 15:51:07 · 100 阅读 · 0 评论 -
LeetCode —— 【232. 用栈实现队列】
JAVAimport java.util.Stack;public class MyQueue { /** * Initialize your data structure here. */ private Stack<Integer> stack; public MyQueue() { stack = new S...原创 2019-08-27 21:13:43 · 125 阅读 · 0 评论