- 博客(20)
- 收藏
- 关注
原创 [LeetCode-45] 基于贪心算法的跳跃游戏 II-最少跳跃次数的求解(C语言版)
printf("您已在终点,无需跳跃,所需的最少跳跃次数为 0 次。// 如果起始位置就是终点,则可以到达。// 保存最远位置对应的索引。while (left < right) { // 寻找可跳的位置。// 记录当前位置可达到的最远距离。// 跳跃次数加 1。printf("所需的最少跳跃次数为 %d 次。printf("请输入您想测试的数组的长度:\n");每次跳跃从可选择的位置中选择跳到可以达到最远距离的位置。printf("请输入数组元素:\n");
2024-10-31 15:38:56
1026
原创 [LeetCode-455]基于贪心算法的分发饼干问题的求解(C语言版)
/ 如果可分发,位标移向下一个,否则不移动孩子。:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。// j 是孩子胃口数组位标索引。// 对孩子胃口数组排序。你的目标是满足尽可能多的孩子,并输出这个最大数值。printf("请输入每块饼干的尺寸大小:\n");printf("请输入每个孩子的胃口大小:\n");,这是能让孩子们满足胃口的饼干的最小尺寸;printf("请输入饼干的数量:\n");printf("请输入孩子的数量:\n");
2024-10-30 16:22:27
847
1
原创 [LeetCode-55]基于贪心算法的跳跃游戏的求解(C语言版)
你最初位于数组的第一个下标位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回。printf("请输入您想测试的数组的长度:\n");printf("可以跳到最后。printf("可以跳到最后。printf("请输入数组元素:\n");printf("无法跳到最后。给你一个非负整数数组。
2024-10-30 15:07:04
673
原创 合并排序算法(C语言版)
/ 对 a[middle+1,right] 进行合并排序。if(i>middle){ // 将 a[middle+1,right]中剩余部分拷贝到 b 数组当中。// 对 a[left,middle] 进行合并排序。// 当 a[1,middle] 和 a[middle+1,right] 中都有元素时,小的保存到 b 数组中。// 将 a[left,middle] 和 a[middle+1,right]合并到 b[left, right]中。// 合并到数组 a。
2024-10-29 18:24:41
761
原创 带头结点的单链表的常用操作(加入InitFlag)(C语言版)
/ 参数合法性检验,参数非法或已销毁,返回不再执行销毁操作。=NULL && j<i-1) { // 如果存在,找到第 i-1 个结点。// 参数合法性检验,链表不存在或已销毁。
2024-10-18 13:05:37
498
原创 基于递归的国王分财产问题的求解方法(C语言版)
他把财产分为若干份,然后给第一个儿子一份,再加上剩余财产的1/10;给第i个儿子i份,再加上剩余财产的1/10。// 结束 m 探测的标志 ,找到符合题意的 m 时为真。int f(int n,int m){ // 表示第 n 个孩子看到的财产数量(前一个孩子分后剩下的)// 当 m 等于 0 时,对应的 n 就是孩子的数量。if(m==0) // 递归出口,第 n 个孩子分完剩下的应该是 0,// 下一个孩子看到的财产数量。
2024-10-17 19:14:22
441
原创 基于链表数据结构+优先队列式(LC)分支限界算法的布线问题的求解(C语言版)
if((true == ListEmpty_L(L))&&( -1 == distance)) { // 仿制恰巧目标节点出队后队空的情况。if((end_row == e.row)&&(end_col == e.col)) { // 是目标则退出。while(FALSE == ListEmpty_L(L)) { // 队列非空执行循环。
2024-10-17 15:09:02
1001
原创 基于链队数据结构+队列式(FIFO)分支限界算法的布线问题的求解(C语言版)
if((true == QueueEmpty_LQ(Q))&&( -1 == distance)) { // 放置恰巧目标节点出队后对空的情况。if((end_row == e.row)&&(end_col == e.col)) { // 是目标则退出。if(map[temp.row][temp.col] == 0) { // 未访问过的结点。if(map[temp.row][temp.col] == 0) { // 未访问过的结点。
2024-10-16 12:54:18
1122
原创 不带头结点的链栈操作集(C语言版)
printf("栈不存在,请先进行栈的初始化操作!printf("栈不存在,请先进行栈的初始化操作!printf("栈不存在,请先进行栈的初始化操作!printf("栈不存在,请先进行栈的初始化操作!printf("栈不存在,请先进行栈的初始化操作!// 参数合法性检验,参数非法或栈已销毁,返回不再执行销毁操作。printf("栈内没有元素,不能执行出栈操作!
2024-10-03 17:41:24
959
原创 顺序表的基本操作集(C语言版)
printf("请确认参数合法化或者先执行顺序表的初始化操作!printf("请确认参数合法化或者先执行顺序表的初始化操作!printf("请确认参数合法化或者先执行顺序表的初始化操作!printf("请确认参数合法化或者先执行顺序表的初始化操作!printf("请确认参数合法化或者先执行顺序表的初始化操作!printf("请确认参数合法化或者先执行顺序表的初始化操作!printf("请确认参数合法化或者先执行顺序表的初始化操作!printf("请确认参数合法化或者先执行顺序表的初始化操作!
2024-10-03 16:52:10
861
原创 循环队列的操作集(C语言版)
printf("单前队列中元素的个数为:%d\n",QueueLength_Sq(Q));// 参数合法性检验,参数非法或已销毁,返回不再执行销毁操作。// 如果是空队,返回错误。
2024-10-02 17:47:36
972
原创 不带头结点的链栈操作集(C语言版)
printf("栈不存在,请先进行栈的初始化操作!printf("栈不存在,请先进行栈的初始化操作!printf("栈不存在,请先进行栈的初始化操作!printf("栈不存在,请先进行栈的初始化操作!printf("栈不存在,请先进行栈的初始化操作!printf("栈内没有元素,不能执行读取栈顶元素操作!printf("取出栈顶元素的值:%d\n",e);printf("请输入要入栈的元素的值:\n");printf("链栈为空!
2024-10-01 20:47:52
571
原创 基于递归的五人捕鱼问题的求解方法(C语言版)
A、B、C、D、E五人合伙夜间捕鱼,凌晨时都疲惫不堪,各自在河边的树丛中找地方睡着了,日上三竿,A第一个醒来,他将鱼平分作五份,把多余的一条扔回湖中,拿自己的一份回家去了,B第二个醒来,也将鱼平分为五份,扔掉多余的一条,只拿走自己的一份,接着C、D、E依次醒来,也都按同样的办法分鱼。printf("第%d个人醒来后看到的鱼的数量是:%d\n", i+1, fish[i]);printf("每个人醒来后看到的鱼的数量具体为:\n");// 形参说明:n表示第几个人,x表示他醒来时看到的鱼的数量。
2024-09-13 11:24:27
584
1
原创 基于递归的汉诺塔问题的求解方法(C语言版)
题目的难度在于,如果用手去移动盘子,如过按照每秒移动一只盘子计算时间的话,按照上述规则将64只盘子从一个柱子移至另一个柱子上,完成时所需时间约为5800亿年。// 形参说明:第一个参数n:盘子数量;//把前n-1个圆盘通过c从a移到b。//把前n-1个圆盘通过a从b移到c。// 形参说明:第一个参数n:第n个盘子;\n",n,a,c);// 函数作用:把第n个圆盘从a移到c,并打印。// 函数作用:把前n个通过b从a移到c。
2024-09-13 11:00:55
268
原创 基于递归的构建等式问题的求解方法(C语言版)
请看上边的算式,为了使等式成立,需要在数字间填入加号或者减号(可以不填,但不能填入其它符号)。之间没有填入符号的数字组合成一个数,例如:12+34+56+7-8+9 就是一种合格的填法;if(n==9){ // 测试到第几个数字,9表示最后一个数字,递归出口。// 0代表没有符号,-1代表加号,-2代表减号。// 判断是否是所需的表达式。// 计算表达式结果。// 打印结果输出表达式。// 递归方式构造表达式。
2024-09-13 03:26:46
805
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人