编程题练习
文章平均质量分 82
编程练习
你走以后
好好学习
展开
-
简单记录牛客top101算法题(初级题C语言实现)BM83 字符串变形 && BM84 最长公共前缀
在ASCII表中,a的ASCII值是97,A的ASCII值是65,大写字母是排在小写字母前面的,所以大写字母和自身的小写字母就是相差97 - 65 = 32。开始的时候,以为是从中间对称反转一下就可以了,再把大小写反转一下,结果不是这样的,后来没有做出来,就看了官方的代码讲解,找到了思路;1.C语言中有库函数,可以判断字母是大写还是小写,并实现相应的转换。2.不使用库函数,自己编写函数来判断。原创 2023-12-31 13:57:13 · 526 阅读 · 0 评论 -
简单记录牛客top101算法题初级题(C语言实现)BM12 单链表的排序
简介:冒泡排序(Bubble Sort)是一种简单的排序算法,其基本思想是从列表的一端开始,依次比较相邻的两个元素,如果它们的顺序不正确就交换它们,然后继续向列表的另一端移动,重复这个过程,直到整个列表变得有序为止。整个过程的思路是,从堆中不断选择最大的元素,将其放在数组的末尾,然后将剩余的元素重新构建为最大堆,重复这个过程直到整个数组都排好序。左指针 left 和右指针 right 继续移动,直到left的索引是2,就是值为3的时候,right的索引是1,值是1的时候,停止循环。3,8,7,7,9。原创 2023-09-01 14:54:02 · 248 阅读 · 0 评论 -
简单记录牛客top101算法题初级题(C语言实现)BM42 用两个栈实现队列 && BM43 包含min函数的栈 && BM44 有效括号序列
栈(Stack)是一种非常重要的数据结构,它基于后进先出(Last-In-First-Out,LIFO)的原则,就是栈中最后插入的元素将会是第一个被移除的元素。栈的两个基本操作:压入(Push):将元素放入栈的顶部,叫做 “压入” 元素。弹出(Pop):从栈的顶部移除元素,叫做 “弹出” 元素。栈的常见的应用场景和示例函数调用栈:编程语言使用栈来跟踪函数的调用和返回,以确保正确的控制流程。表达式求值:栈可以用于计算数学表达式,特别是中缀表达式转换为后缀表达式,然后进行求值。原创 2023-08-30 19:47:54 · 263 阅读 · 0 评论 -
简单记录牛客top101算法题(初级题C语言实现)BM24 二叉树的中序遍历 && BM28 二叉树的最大深度 && BM29 二叉树中和为某一值的路径
** 要求:给定一个二叉树的根节点root,返回它的中序遍历结果。** 1.1 自己的整体思路(与二叉树的前序遍历大致一样)使用二叉树的前序遍历方法,递归完成二叉树元素的访问。先遍历二叉树,求出二叉树的结点数量以后,再申请数组,这样节省内存大小。二叉树的前中后序遍历,只需要改变访问根结点的代码位置,其与递归左子树和右子树的位置,代表是前中后序的一种。1.2 小结1.2.1 求二叉树结点的个数 假设这个二叉树如下所示:原创 2023-08-15 23:01:16 · 532 阅读 · 0 评论 -
简单记录牛客top101算法题(初级题C语言实现)BM17 二分查找 && BM21 旋转数组的最小数字 && BM23 二叉树的前序遍历
1.计算中间位置 mid,并与 right 指针所指向的元素进行比较:如果 rotateArray[mid] > rotateArray[right],说明最小值在 mid 右侧,将 left 更新为 mid + 1。如果 rotateArray[mid] < rotateArray[right],说明最小值在 mid 左侧或就是 mid,将 right 更新为 mid。原创 2023-08-11 11:17:56 · 803 阅读 · 0 评论 -
简单记录牛客top101算法题(初级题C语言实现)BM8 链表中倒数最后k个结点 && BM10 两个链表的第一个公共结点&& BM6 判断链表中是否有环
要求:输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。如果该链表长度小于k,请返回一个长度为 0 的链表。输入: {1 , 2 , 3 , 4 , 5 } , 2 返回值: {4 , 5 } 说明:返回倒数第 2 个节点 4 ,系统会打印后面所有的节点来比较。输入: {2 } , 8 返回值: {原创 2023-08-09 14:57:54 · 433 阅读 · 0 评论 -
简单记录牛客top101算法题(初级题C语言实现)BM4 合并两个排序的链表 && BM13 链表是否为回文结构&& BM15 删除有序链表中重复的元素
再遍历一遍链表,找到链表对称的位置,并记录下对称位置的指针,如果是4(偶数)个元素,就记录3(偶数 / 2的下一个位置)的指针位置,如果是7(奇数)个元素,就记录4(奇数 / 2的下一个位置)。3.检查快指针是否到达链表末尾(即快指针的下一个节点为空,或者快指针本身为空)。3. 反转对称位置的指针后面的链表,然后进行依次比较,如果都相同返回true,有一个不相同,就返回false。3. 在第三种情况中,要考虑到比较链表中的元素时,链表1中的元素遍历完还是链表2中的数据先遍历完成。原创 2023-08-08 15:35:20 · 474 阅读 · 0 评论 -
简单记录牛客top101算法题(初级题C语言实现)判断回文字符串 && 反转字符串 && 合并两个有序的数组
给定一个长度为 n 的字符串,请编写一个函数判断该字符串是否回文。如果是回文请返回true,否则返回false。 字符串回文指该字符串正序与其逆序逐字符一致。1.1 整体思路统计字符串个数。遍历字符串,首尾依次比较字符是否相等备注: 以字符串数组5个元素为例子,5 / 2 = 2,i能取到的值就是0和1(前两个元素),所以从尾开始算起的话,也是取了最后一个元素和倒数第一个元素(后两个元素); 以字符串数组6个元素为例子,5 / 2 = 3,i能取到的值就是0和1和2(前三个原创 2023-07-30 19:49:38 · 444 阅读 · 0 评论 -
简单记录一下剑指offer的编程题(C语言实现)——替换空格&&反转链表
因为已经对cur->next进行操作了,即cur指向前一个结点,现在再移动cur的指针位置,已经和头结点的下一个结点断开了,找不到下一个节点的位置了,所以还是要引入新的结点变量,来记录头节点的下一结点来完成遍历链表。新建一个数组,长度为替换空格后的长度+1,遍历原始数组,往新数组中按顺序添加字符。请实现一个函数,把字符串 s 中的每个空格替换成"%20"。链表是带指针的结构体;原创 2023-07-19 10:35:24 · 563 阅读 · 0 评论