- 博客(22)
- 收藏
- 关注
原创 13、KMP算法
#include <iostream> #include <cstring> using namespace std; #define MaxSize 255 typedef 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
288
原创 12、字符串动态分配基本操作
#include <iostream> using namespace std; #define MaxSize 255 typedef 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
417
原创 11、栈:后缀表达式求值
#include <iostream> using namespace std; #define MaxSize 20 typedef 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
853
原创 10、栈:中缀表达式转后缀表达式
#include <iostream> //如果将要入栈的符号优先级大于栈内的优先级,可以直接入栈 //如果将要的入栈的符号优先级小于等于栈内符号的优先级,那么需要将栈顶元素出栈,再将该元素入栈 //如果遇到),那么将需要将栈内一直到(的元素都要出栈 using namespace std; #define MaxSize 20 typedef struct{ char data[MaxSize]; int top; }SqStack; void InitSqStack(SqS
2022-05-23 14:23:47
203
原创 9、栈的括号匹配
#include <iostream> //带头结点的单链表实现方法 using namespace std; #define MaxSize 10 typedef 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
107
原创 8、链式队列
#include <iostream> using namespace std; #define MaxSize 10 typedef 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
135
原创 7、循环队列
#include <iostream> using namespace std; #define MaxSize 10 typedef 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
96
原创 6、链栈的基本操作
```cpp #include <iostream> using namespace std; #define MaxSize 10 typedef 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
119
原创 5、顺序栈
#include <iostream> //带头结点的单链表实现方法 using namespace std; #define MaxSize 10 typedef 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
113
原创 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
96
原创 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
264
原创 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
501
原创 2、顺序表动态分配内存
#include<stdio.h> #include <cstdlib> #define InitSize 10 typedef 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
233
原创 1、顺序表静态数组分配内存
#include<stdio.h> #define MaxSize 10 typedef struct { int data[MaxSize];//静态数组分配内存 int length;//顺序表当前长度 }SqList; void InitList(SqList &L);//初始化顺序表 int InsertList(SqList &L,int i,int e);//向顺序表第i个位置插入数据e int DeleteList(SqList &L,i
2022-05-18 14:00:22
202
原创 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
105
原创 递归法反转链表系列
剑指 Offer 24. 反转链表 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 限制: 0 <= 节点个数 <= 5000 ListNode*reverse(ListNode*head) { if(head==nullptr||head->next==nullptr)
2021-04-05 12:02:32
345
原创 力扣leetcode781. 森林中的兔子
**781. 森林中的兔子 森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。 返回森林中兔子的最少数量。 示例: 输入: answers = [1, 1, 2] 输出: 5 解释: 两只回答了 “1” 的兔子可能有相同的颜色,设为红色。 之后回答了 “2” 的兔子不会是红色,否则他们的回答会相互矛盾。 设回答了 “2” 的兔子为蓝色。 此外,森林中还应有另外 2 只蓝色兔子的回答没有包含在数组中。 因此森林中兔子的最
2021-04-04 13:48:50
142
原创 动态规划之最长公共子序列
//1143. 最长公共子序列 //583. 两个字符串的删除操作 //712. 两个字符串的最小ASCII删除和 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。 例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。 两个字符串的 公共子序列
2021-04-03 19:43:34
203
原创 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
184
原创 力扣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
214
原创 力扣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] <= 10 nums 中的所有元素 互.
2021-04-01 17:34:13
232
原创 力扣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
220
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅