- 博客(22)
- 收藏
- 关注
原创 13、KMP算法
#include <iostream>#include <cstring>using namespace std;#define MaxSize 255typedef struct { char *ch; int len;}SString;void Init(SString &str);//初始化串bool StrAssign(SString & str, char*ch);//赋值操作bool StrCopy(SString&
2022-05-24 15:06:04
264
原创 12、字符串动态分配基本操作
#include <iostream>using namespace std;#define MaxSize 255typedef struct { char *ch; int len;}SString;void Init(SString &str);//初始化串bool StrAssign(SString & str, char*ch);//赋值操作bool StrCopy(SString&str,SString T);//复制串boo
2022-05-24 13:54:57
370
原创 11、栈:后缀表达式求值
#include <iostream>using namespace std;#define MaxSize 20typedef struct{ int data[MaxSize]; int top;}SqStack;void InitSqStack(SqStack &S);//初始化顺序栈bool IsEmpty(SqStack S);//判断是否栈空bool Push(SqStack &S,int x);//进栈操作bool Pop(SqS
2022-05-23 16:03:27
806
原创 10、栈:中缀表达式转后缀表达式
#include <iostream>//如果将要入栈的符号优先级大于栈内的优先级,可以直接入栈//如果将要的入栈的符号优先级小于等于栈内符号的优先级,那么需要将栈顶元素出栈,再将该元素入栈//如果遇到),那么将需要将栈内一直到(的元素都要出栈using namespace std;#define MaxSize 20typedef struct{ char data[MaxSize]; int top;}SqStack;void InitSqStack(SqS
2022-05-23 14:23:47
177
原创 9、栈的括号匹配
#include <iostream>//带头结点的单链表实现方法using namespace std;#define MaxSize 10typedef struct{ char data[MaxSize]; int top;}SqStack;void InitSqStack(SqStack &S);//初始化顺序栈bool IsEmpty(SqStack S);//判断是否栈空bool Push(SqStack &S,char x);//进
2022-05-23 12:41:57
83
原创 8、链式队列
#include <iostream>using namespace std;#define MaxSize 10typedef struct QNode{ int data; struct QNode*next;}QNode;//队节点类型定义typedef struct { QNode*front; QNode*rear;}LinkQueue;//带头结点的链式队列void InitQueue(LinkQueue &que);//
2022-05-22 21:25:02
109
原创 7、循环队列
#include <iostream>using namespace std;#define MaxSize 10typedef struct SqQueue{ int data[MaxSize]; int front,rear;}SqQueue;void InitQueue(SqQueue &que);//初始化bool IsEmpty(SqQueue que);//判断队列是否为空bool enQueue(SqQueue &que,int x
2022-05-22 20:06:00
71
原创 6、链栈的基本操作
```cpp#include <iostream>using namespace std;#define MaxSize 10typedef struct LStackNode{ int data; struct LStackNode *next;}LStackNode,*LiStack;void InitSqStack(LiStack &lst);//初始化顺序栈bool IsEmpty(LiStack lst);//判断是否栈空bool Pus.
2022-05-22 18:59:18
94
原创 5、顺序栈
#include <iostream>//带头结点的单链表实现方法using namespace std;#define MaxSize 10typedef struct{ int data[MaxSize]; int top;}SqStack;void InitSqStack(SqStack &S);//初始化顺序栈bool IsEmpty(SqStack S);//判断是否栈空bool Push(SqStack &S,int x);//进栈操
2022-05-22 17:17:30
91
原创 4、双链表
#include <iostream>//带头结点的单链表实现方法using namespace std;typedef struct DNode { int data; struct DNode *prior; struct DNode *next;}DNode,*DLinkList;void CreatDListR(DLinkList& L,int a[],int n);//尾插法建立双链表DNode* FindDNode(DLinkList&
2022-05-22 17:16:12
69
原创 4、双链表
#include <iostream>//带头结点的单链表实现方法using namespace std;typedef struct DNode { int data; struct DNode *prior; struct DNode *next;}DNode,*DLinkList;void CreatDListR(DLinkList& L,int a[],int n);//尾插法建立双链表DNode* FindDNode(DLinkList&
2022-05-19 19:53:20
220
原创 3、带头结点的单链表基本操作
#include <iostream>//带头结点的单链表实现方法typedef struct LNode{ int data; struct LNode *next;}LNode,*LinkList;bool InitList(LinkList &L);//初始化单链表,(带头节点)void DestoryList(LinkList &L);//销毁单链表int InsertList(LinkList &L,int i,int e);/
2022-05-19 09:15:40
470
原创 2、顺序表动态分配内存
#include<stdio.h>#include <cstdlib>#define InitSize 10typedef struct { int* data; int length; int MaxSize;}SqList;SqList CreatList();//创建顺序表void InitList(SqList &L);//初始化顺序表void DestoryList(SqList &L);//销毁顺序表int In
2022-05-18 16:27:12
189
原创 1、顺序表静态数组分配内存
#include<stdio.h>#define MaxSize 10typedef struct { int data[MaxSize];//静态数组分配内存 int length;//顺序表当前长度}SqList;void InitList(SqList &L);//初始化顺序表int InsertList(SqList &L,int i,int e);//向顺序表第i个位置插入数据eint DeleteList(SqList &L,i
2022-05-18 14:00:22
180
原创 2021-04-11
丑数给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。丑数 就是只包含质因数 2、3 和/或 5 的正整数。示例 1:输入:n = 6输出:true解释:6 = 2 × 3示例 2:输入:n = 8输出:true解释:8 = 2 × 2 × 2思路:这个题比较简单,模拟就可以了class Solution {public: bool isUgly(int n) { if (n <= 0) {//如.
2021-04-11 13:05:13
84
原创 递归法反转链表系列
剑指 Offer 24. 反转链表定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL限制:0 <= 节点个数 <= 5000ListNode*reverse(ListNode*head) { if(head==nullptr||head->next==nullptr)
2021-04-05 12:02:32
313
原创 力扣leetcode781. 森林中的兔子
**781. 森林中的兔子森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。返回森林中兔子的最少数量。示例:输入: answers = [1, 1, 2]输出: 5解释:两只回答了 “1” 的兔子可能有相同的颜色,设为红色。之后回答了 “2” 的兔子不会是红色,否则他们的回答会相互矛盾。设回答了 “2” 的兔子为蓝色。此外,森林中还应有另外 2 只蓝色兔子的回答没有包含在数组中。因此森林中兔子的最
2021-04-04 13:48:50
123
原创 动态规划之最长公共子序列
//1143. 最长公共子序列 //583. 两个字符串的删除操作 //712. 两个字符串的最小ASCII删除和给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的 公共子序列
2021-04-03 19:43:34
171
原创 2021-04-03
**//最大一维数组字段和**//输入一个数字n代表数组大小,依次输入数组的数值//求出一维数组中最大的字段和并输出#include<iostream>using namespace std;int main(){ int a[10]; int ans=-0; int sum=0; int n;cin>>n; for(int i=0;i<n;i++) { cin>>a[i];
2021-04-03 14:33:47
166
原创 力扣leetcode面试题 17.21. 直方图的水量
面试题 17.21. 直方图的水量给定一个直方图(也称柱状图),假设有人从上面源源不断地倒水,最后直方图能存多少水量?直方图的宽度为 1。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的直方图,在这种情况下,可以接 6 个单位的水(蓝色部分表示水)。 感谢 Marcos 贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6通过次数33,666提交次数53,537思路一:通过用辅助数组的思想来寻找某个点左边最大和右边最大;寻找到最大中最
2021-04-02 23:43:50
183
原创 力扣leetcode 78.子集
子集给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0]输出:[[],[0]]提示:1 <= nums.length <= 10-10 <= nums[i] <= 10nums 中的所有元素 互.
2021-04-01 17:34:13
207
原创 力扣leetcode1006. 笨阶乘力扣
笨阶乘力扣通常,正整数 n 的阶乘是所有小于或等于 n 的正整数的乘积。例如,factorial(10) = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1。相反,我们设计了一个笨阶乘 clumsy:在整数的递减序列中,我们以一个固定顺序的操作符序列来依次替换原有的乘法操作符:乘法(*),除法(/),加法(+)和减法(-)。例如,clumsy(10) = 10 * 9 / 8 + 7 - 6 * 5 / 4 + 3 - 2 * 1。然而,这些运算仍然使用通常的算术运算.
2021-04-01 10:59:31
184
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人