![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构和算法
C/C++数据结构
一只野生的善逸
吃饭,睡觉,学习
展开
-
leetcode-206.反转链表
【代码】leetcode-206.反转链表。原创 2023-07-23 12:42:13 · 114 阅读 · 0 评论 -
leetcode-707.设计链表
【代码】leetcode-707.设计链表。原创 2023-07-22 15:50:13 · 67 阅读 · 0 评论 -
剑指 Offer 05. 替换空格
【代码】剑指 Offer 05. 替换空格。原创 2023-07-14 18:05:38 · 249 阅读 · 0 评论 -
leetcode-541. 反转字符串 II
【代码】leetcode-541. 反转字符串 II。原创 2023-07-14 17:44:28 · 333 阅读 · 0 评论 -
leetcode-344. 反转字符串
【代码】leetcode-344. 反转字符串。原创 2023-07-14 08:57:57 · 319 阅读 · 0 评论 -
leetcode-203.移除链表元素
【代码】leetcode-203.移除链表元素。原创 2023-07-11 06:35:23 · 376 阅读 · 0 评论 -
leetcode-209.长度最小的子数组
【代码】leetcode-209.长度最小的子数组。原创 2023-07-10 00:48:18 · 199 阅读 · 0 评论 -
leetcode-977. 有序数组的平方
【代码】leetcode-977. 有序数组的平方。原创 2023-07-09 16:26:55 · 234 阅读 · 0 评论 -
leetcode-27.移除元素
【代码】leetcode-27.移除元素。原创 2023-07-09 10:19:04 · 279 阅读 · 0 评论 -
leetcode-704.二分查找
【代码】leetcode-704. 二分查找。原创 2023-07-08 23:52:39 · 213 阅读 · 0 评论 -
深度优先搜索(DFS)和广度优先搜索(BFS)探究
附BFS解题代码:#include<iostream>#include<queue>using namespace std;char room[23][23];int dir[4][2] ={ {-1,0}, //向左。左上角坐标是(0, 0) {0,-1}, //向上 {1,0}, //向右 {0,1} //向下};int Wx, Hy, num,num_times=0; //Wx...原创 2021-07-18 16:33:51 · 141 阅读 · 1 评论 -
时间复杂度和空间复杂度探究
时间复杂度:程序运行需要的时间。空间复杂度:程序运行需要的存储空间。O(nm)O(nm)O(nm)和O(n2m)O(n^{2}m)O(n2m)就是时间复杂度。符号OOO表示复杂度,O(nm)O(nm)O(nm)可以粗略地理解为运行次数是n×mn \times mn×m。O(n2m)O(n^{2}m)O(n2m)比O(nm)O(nm)O(nm)运行时间差不多大nnn倍。由于程序运行的时间依赖于计算机的性能,不同的计算机结果不同,所以直接把运行时间作为判断标准并不准确。通常,用程序执行的“次数”来衡量更加原创 2021-07-17 18:42:10 · 549 阅读 · 0 评论 -
邻接矩阵和邻接表
示例图邻接矩阵实现图的最简单的方法之一是使用二维矩阵。在该矩阵实现中,每个行和列表示图中的顶点。存储在行 v 和列 w 的交叉点处的单元中的值表示是否存在从顶点 v 到顶点 w 的边。当两个顶点通过边连接时,我们说它们是相邻的。单元格中的值表示从顶点 v 到顶点 w 的边的权重。邻接矩阵的优点是简单,对于小图,很容易看到哪些节点连接到其他节点。 然而,注意矩阵中的大多数单元格是空的。 因为大多数单元格是空的,我们说这个矩阵是“稀疏的”。矩阵不是一种非常有效的方式来存储稀疏数据。由于图中每个顶点有转载 2021-07-17 17:18:23 · 248 阅读 · 0 评论 -
(6)DFS(深度优先搜索算法):n皇后问题
题解:附代码:#include<iostream>using namespace std;const int N=20;int n;char g[N][N];bool col[N],dg[N],udg[N];void dfs(int u){ if(u==n) { for(int i=0; i<n; i++)puts(g[i]); puts(""); return; } for(int .原创 2021-06-17 18:16:58 · 255 阅读 · 0 评论 -
(5)DFS(深度优先搜索算法):排列数字
题解:附代码:#include<iostream>#include<stdio.h>using namespace std;const int N=10;int n;int path[N];//将每个节点的数据用数组存下来bool st[N];//判断当前位置那些数被用过了void dfs(int u){ if(u==n)//把所有的位置都填满了,输出就可以了 { for(int i=0;i<n;i++)printf.原创 2021-06-16 13:29:39 · 123 阅读 · 0 评论 -
C语言之链表探究之单向链表(List)、附双向循环链表参考博文地址
链表结构图一链表结构图二链表结构图三链表结构图四一.静态链表例1:附例1代码:#include <stdio.h>typedef struct node { int data; struct node* next;} Node;int main(){ //2.链表内容 Node a,b,c; a.data = 10; b.data = 20; c.data = 30; //3.链表链接 a.next = &b; b.next = .原创 2021-02-28 14:26:21 · 255 阅读 · 0 评论 -
(3~4):C实现数组选择排序
3.选择排序#include<stdio.h>#define N 10int main(){ int arr[N]={1,-1,20,100,35,634,3,6,12,62}; int t; for(int i=0;i<N-1;i++) { for(int j=i+1;j<N;j++) { if(arr[i]>arr[j]) {原创 2021-02-17 17:22:08 · 165 阅读 · 0 评论 -
(1~2):C实现数组求和,求平均值,求最大值,最小值
1.求和、求平均值#include<stdio.h>int main(){ int arr[5]={1,2,3,4,5}; int sum=0; for(int i=0;i<5;i++) { sum+=arr[i]; } printf("sum=%d\n",sum); printf("average=%f\n",(float)sum/10); return 0;}2.求最大值、最小值#incl原创 2021-02-17 12:27:57 · 2193 阅读 · 0 评论