
算法题记录
这学期大二学校开了数据结构与算法
它的重要性不言而喻了
以后我会把我的学习笔记放在这里
方便用的时候查看(懒得每次都去翻书了)
星星leslie
这个作者很懒,什么都没留下…
展开
-
数据结构--图的DFS和BFS算法题总结
文章目录有向图的创建、求度、遍历求解连通分量个数有向图的创建、求度、遍历题目描述从键盘接收有向图的顶点集,弧集,创建有向图,并完成下列任务:(1)计算结点的出度、入度以及度;(2) 从第一个顶点出发,求一个深度优先遍历序列;(3) 从第一个顶点顶点出发,求一个广度优先遍历序列。注意:以用户输入各个顶点的顺序为顶点的序号。 在深度和广度优先遍历中,优先选择序号小的顶点。...原创 2019-11-23 23:45:06 · 1373 阅读 · 0 评论 -
动态规划算法题总结
文章目录买卖股票的最佳时机1买卖股票的最佳时机 II买卖股票的最佳时机1题目链接int max(int a, int b) { return a > b ? a : b;}int maxProfit(int* prices, int pricesSize) { //边界 int buy = -prices[0]; int sell = 0; ...原创 2019-11-03 18:36:54 · 240 阅读 · 0 评论 -
求解魔法阵
魔方阵,古代又称“纵横图”,是指组成元素为自然数1、2、…、n2的平方的n×n的方阵,其中每个元素值都不相等,且每行、每列以及主、副对角线上各n个元素之和都相等。#include<stdio.h>#include<stdlib.h>#include<math.h>int main() { int n; int array[100][100] = {0...原创 2019-10-28 16:01:47 · 440 阅读 · 0 评论 -
求解马鞍点
问题 C: DS-5.3 求解马鞍点问题(by Yan)时间限制: 1 Sec 内存限制: 128 MB提交: 474 解决: 170[提交] [状态] [讨论版] [命题人:zengyan] 题目描述 若矩阵An*m中某个元素A[i][j]是矩阵第i行中值最小的元素,同时又是第j列中值最大的元素,则称元素A[i][j...原创 2019-10-28 15:31:40 · 1420 阅读 · 0 评论 -
数据结构—二叉树算法题总结
文章目录二叉树的最大深度二叉树的最小深度二叉树的最大深度方法一:递归int Max(int a, int b) { if (a > b) { return a; } else { return b; }}int maxDepth(struct TreeNode* root){ if (root == NULL) {...原创 2019-10-20 17:09:45 · 1565 阅读 · 0 评论 -
逆波兰表达式(算数表达式求解)
#include <stdio.h>#include <stdlib.h>#define MAX 1000typedef struct Stack { int elem[MAX]; int top;}Stack;typedef struct Stack2 { int elem[MAX]; int top;}Stack2;/...原创 2019-10-08 11:15:15 · 339 阅读 · 0 评论 -
原地算法
题目描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 ...原创 2019-10-05 13:56:13 · 583 阅读 · 0 评论 -
暴力枚举—无重复字符的最长子串
题目描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “w...原创 2019-10-03 23:29:47 · 648 阅读 · 0 评论 -
C/C++常用自带函数
首先使用之前必须要实现的函数return的返回值(它决定了你是按从大到小,还是从小到大排序)从大到小:return *(int *)b - *(int *)a;从小到大:return *(int *)a - *(int *)b;int cmp(const void *a, const void *b) { return *(int *)b - *(int *)a;}main函数...原创 2019-09-25 14:07:35 · 2806 阅读 · 0 评论 -
一元多项式—输入,输出 加法乘法
题目描述:实现两个一元多项式相加运算。#include<stdio.h>#include<stdlib.h>typedef struct polynomial { float coe; int exp; struct polynomial *next;}Poly;Poly *Create_Tail() { int m; scanf("%d", &...原创 2019-09-22 18:15:39 · 937 阅读 · 0 评论 -
栈—括号序列
以此题作为栈的练习:题目链接题目:定义满足以下规则字符串为规则序列,否则不是规则序列:1.空序列是规则序列;2.如果S是规则序列,那么(S),[S],{S}和也是规则序列3.如果A和B都是规则序列,那么AB也是规则序列例如,下面的字符串都是规则序列:(),[],(()),([]),()[],()[()],{{}}<>,([]<>{{}}),<<{...原创 2019-09-21 10:55:25 · 318 阅读 · 0 评论 -
串的模式匹配——BF算法
BF算法——又称”蛮力算法“Brute-Force#include<stdio.h>#include<stdlib.h>#include<string.h>int main() { char a1[50] = {0}, a2[50] = {0}; scanf("%s", a1); scanf("%s", a2); int len1 = strl...原创 2019-09-05 17:38:18 · 333 阅读 · 0 评论 -
栈——学习笔记
主要记录自己学的数据结构和刷算法题得出的一些经验栈定义结构体封装(顺序存储结构,用数组)#define MAXSIZE 2000001typedef struct Stacknode { char ch[MAXSIZE]; int top;}SeqStack;初始化//初始化 SeqStack *InitStack() { SeqStack *s; s = (SeqSta...原创 2019-09-07 13:55:28 · 181 阅读 · 0 评论 -
队列——学习笔记
队列封装结构体(数组)#define MAXSIZE 1000typedef struct { int elem[MAXSIZE]; int rear, front;}SeQueue;初始化SeQueue *InitQueue() { SeQueue *s = (SeQueue *)malloc(sizeof(SeQueue)); s->front = s->re...原创 2019-09-07 20:54:07 · 178 阅读 · 0 评论 -
各大排序算法
后面慢慢完善堆排序#include<stdio.h>int h[101];//用来存放堆的数组 int n; //用来存储堆中元素的个数,也就是堆的大小//交换函数,用来交换堆中的两个元素的值void Swap(int x, int y) { int t; t = h[x]; h[x] = h[y]; h[y] = t;&n...原创 2019-09-08 20:45:17 · 129 阅读 · 0 评论 -
LeetCode—快慢指针解题
题目链接这个题大致意思就是判断链表中是否有环第一次使用快慢指针解题,觉得很新鲜,记录一下bool hasCycle(struct ListNode *head) { struct ListNode *slow = head; struct ListNode *fast = head; while (fast && fast->next) { ...原创 2019-09-15 11:08:00 · 275 阅读 · 0 评论 -
做算法题遇到的一个指针问题
今天做算法题遇到一个指针问题如下,代码已贴出我这里这个函数需要返回两个值显然,要么用结构体存这两个值,返回这个结构体要么用指针这里我用的指针但是如果我光定义int *p然后直接去使用,发现值存不进去。只有int *p = (int *)malloc(sizeof(int) * 2);分配内存之后就可以了。这里我解决的是链表问题。但是,我如果用的顺序表,不用分配内存指针也可以...原创 2019-09-17 23:22:04 · 171 阅读 · 0 评论 -
LeetCode_删除链表倒数第N个结点
题目链接快慢指针我觉得真是一个不错的解题思想第一次用快慢指针思想解决了一个算法题有点兴奋,记录一下讲解在贴出的代码中直接上代码了struct ListNode* removeNthFromEnd(struct ListNode* head, int n){ struct ListNode *p1, *p2, *L, *p3; int flag = 1; L = ...原创 2019-09-18 00:25:02 · 141 阅读 · 0 评论 -
循环链表(快慢指针)—约瑟夫环
以前也处理过一个约瑟夫环问题。但是以前处理那个比较简单。它的m是固定的这次m删除一次结点后要变化。所以卡了很久通过这个题,感觉自己调试程序的能力有所增强fighting#include<stdio.h>#include<stdlib.h>typedef struct Node { int id; int password; struct Node *n...原创 2019-09-18 17:31:56 · 347 阅读 · 0 评论 -
记录一道leetcode算法题的坑
题目链接这个题并不难,只是想让自己牢记一句老话"题目里面的每个条件都有用"int* twoSum(int* nums, int numsSize, int target, int* returnSize){ //int a[2] = {0}; //注意 //注意 //注意 *returnSize = 2; int ...原创 2019-08-29 22:23:57 · 1346 阅读 · 2 评论