![](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 · 113 阅读 · 0 评论 -
leetcode-707.设计链表
【代码】leetcode-707.设计链表。原创 2023-07-22 15:50:13 · 66 阅读 · 0 评论 -
剑指 Offer 05. 替换空格
【代码】剑指 Offer 05. 替换空格。原创 2023-07-14 18:05:38 · 246 阅读 · 0 评论 -
leetcode-541. 反转字符串 II
【代码】leetcode-541. 反转字符串 II。原创 2023-07-14 17:44:28 · 331 阅读 · 0 评论 -
leetcode-344. 反转字符串
【代码】leetcode-344. 反转字符串。原创 2023-07-14 08:57:57 · 316 阅读 · 0 评论 -
leetcode-203.移除链表元素
【代码】leetcode-203.移除链表元素。原创 2023-07-11 06:35:23 · 374 阅读 · 0 评论 -
leetcode-209.长度最小的子数组
【代码】leetcode-209.长度最小的子数组。原创 2023-07-10 00:48:18 · 198 阅读 · 0 评论 -
leetcode-977. 有序数组的平方
【代码】leetcode-977. 有序数组的平方。原创 2023-07-09 16:26:55 · 232 阅读 · 0 评论 -
leetcode-27.移除元素
【代码】leetcode-27.移除元素。原创 2023-07-09 10:19:04 · 278 阅读 · 0 评论 -
leetcode-704.二分查找
【代码】leetcode-704. 二分查找。原创 2023-07-08 23:52:39 · 212 阅读 · 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 · 140 阅读 · 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 · 543 阅读 · 0 评论 -
邻接矩阵和邻接表
示例图 邻接矩阵 实现图的最简单的方法之一是使用二维矩阵。在该矩阵实现中,每个行和列表示图中的顶点。存储在行 v 和列 w 的交叉点处的单元中的值表示是否存在从顶点 v 到顶点 w 的边。当两个顶点通过边连接时,我们说它们是相邻的。单元格中的值表示从顶点 v 到顶点 w 的边的权重。 邻接矩阵的优点是简单,对于小图,很容易看到哪些节点连接到其他节点。 然而,注意矩阵中的大多数单元格是空的。 因为大多数单元格是空的,我们说这个矩阵是“稀疏的”。矩阵不是一种非常有效的方式来存储稀疏数据。 由于图中每个顶点有转载 2021-07-17 17:18:23 · 245 阅读 · 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 · 249 阅读 · 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 · 122 阅读 · 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 · 253 阅读 · 0 评论 -
(3~4):C实现数组选择排序
3.选择排序 #include<stdio.h> #define N 10 int 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 · 164 阅读 · 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 · 2190 阅读 · 0 评论