- 博客(5)
- 资源 (2)
- 收藏
- 关注
原创 讲解编辑距离(C语言)
本文详细讲解了编辑距离问题的动态规划解法。编辑距离是指将一个字符串转换为另一个字符串所需的最少操作次数,包括插入、删除和替换字符三种操作。 文章首先定义了问题,并介绍了动态规划数组的构建方法。通过分析字符串末尾字符的不同处理方式(删除、插入或替换),推导出递推公式:若末尾字符相同则取左上角值,否则取左、上、左上三个方向的最小值加1。 文章还证明了编辑距离问题的解必定存在,并分析了算法的时间复杂度和空间复杂度均为O(mn)。最后提供了完整的C语言实现代码,包括动态规划数组的初始化、递推计算和内存释放等步骤。
2025-08-07 00:18:55
985
原创 讲解栈和队列的实现(C语言)
要使用数组实现栈的基本功能,我们需要知道栈的空间大小,并且定义一个整型变量充当栈顶指针,表示栈顶元素在数组中的下标。#define SIZE_INIT 50 // 定义栈的初始空间大小// 定义栈的结构体int* stack;// 栈数组的指针变量int top;// 栈顶指针int size;// 栈当前的空间大小接下来我们要编写初始化栈的函数,在这个函数中我们将初始化栈的空间大小,同时初始化栈顶指针为-1表示栈为空,并为栈动态分配好空间。// 初始化栈// 参数s为栈的结构体的地址。
2024-05-05 19:59:24
797
2
原创 数独填写器
只要可解都可解出来(无解也行,但解出的是不成立的)。代码实现原理是先推导,推到推不了再进行回溯。回溯时每试一个都执行先推再回溯再判断正确性的步骤,所以会有些重复的代码(主要是写完懒得改了)。#include <stdio.h>#include <graphics.h>#include <stdlib.h>#include <time.h>int main(void){ srand((unsigned)time(NULL)); v...
2021-12-27 16:24:54
1917
原创 2048小游戏源码
#include <stdio.h>#include <stdlib.h>#include <time.h>#include <graphics.h>int main(){ void zuo(int a[]); void shang(int a[]); void xia(int a[]); void you(int a[]); int a[17] = { 0 }; srand((unsigned)time(NULL)); int m.
2021-12-26 23:29:16
2516
斗地主C语言版的源文件
2022-09-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅