c语言基础
文章平均质量分 77
无须logic ᭄
“正因没翅膀,人才会寻找飞翔的方法。”
展开
-
关于《二叉树的层序遍历》的基础解析
本篇我们暂时不涉及关于二叉树的全部基本知识,而是了解一下二叉树的一个十分重要的操作——层序遍历。二叉树的遍历方式大致分为两种,深度优先遍历和广度优先遍历。·前序遍历:中左右·中序遍历:左中右·后序遍历:左右中层次遍历下面我们通过题目来了解层序遍历的一些操作,各题目的大体结构是相似的,只需改变其中的逻辑结构来实现题目要求。原创 2024-04-06 23:01:51 · 855 阅读 · 1 评论 -
关于《双指针法》的基础解析
左指针:缩小左区间。右指针:缩小右区间。以下,我们来介绍双指针的简单操作。原创 2024-03-25 22:16:05 · 701 阅读 · 1 评论 -
关于《字符串》的基础解析
本篇将对与字符串有关的基本操作进行基本讲解,在例题的思路中对双指针法进行复习并介绍新的题型与解题方法。原创 2024-03-09 21:54:32 · 874 阅读 · 0 评论 -
关于《哈希表》的基础解析(下)
承接上篇,本篇将继续介绍有关哈希表的部分操作,并会将双指针法融入哈希表中。本篇直接通过对例题思路的思考来介绍双指针法的初步应用。原创 2024-03-03 21:14:46 · 370 阅读 · 0 评论 -
关于《哈希表》的基础解析(上)
在新的一篇,我们将认识“”,并运用哈希表解题。1.哈希表的基础理论。原创 2024-02-20 11:04:44 · 938 阅读 · 2 评论 -
关于《螺旋矩阵》的基础解析
上述即为对“螺旋矩阵”的基础解析,万事万物皆有规律可循,螺旋矩阵的规律除了从外而内的递增,还有对称,正是对称使得第二题的代码不必将矩阵中心的元素单列出来。代码将数学的规律演绎的栩栩如生,数学使代码的逻辑变得有迹可循,二者浑然一体,才能创造出抽象且具体的螺旋矩阵。同时,我们要注意,如果只是单纯的依据该特点画出正方形的矩阵,我们会发现正方形四个角的位置对应的元素很容易出现重复操作的情况。:在了解螺旋矩阵的写法与原理后,本题的思路就是将螺旋矩阵的写法反其道而行之,将其中的元素列出来。,返回矩阵中的所有元素。原创 2024-02-13 14:48:31 · 1353 阅读 · 1 评论 -
关于《长度最小的子数组》的基础解析
上述即为对“长度最小的子数组”的基础解析,从连续子串到覆盖子串,窗口滑动的方法都是在遍历中找到目标元素,依据题意进行边界的移动与更新。更新的过程是一步接一步的,所谓“不积跬步,无以至千里”,一步步的更新才能找最后的答案。本题仅仅要求s中覆盖有t中元素的子串,子串中的元素可以不连续,元素个数只能多不能少。子数组只能容纳两种不同的元素,重复的元素可以连续,也可紧挨子数组中的元素,但该两种元素出现的位置必须连续。暴力解法是用常见的双循环遍历;之后随着遍历的进行,表格中的数据也随之更新,直至找到最小的覆盖子串。原创 2024-02-11 17:34:40 · 979 阅读 · 1 评论 -
关于《移除元素》的基础解析
如何删除数组中的指定元素呢?对于数组中多余的元素直接删掉的方法是不可取的,因为数组的元素在内存地址中是连续的,只能覆盖,不能删除。常见的移除数组中的元素的方法有两种:双循环法和双指针法。(本篇主要介绍双指针法)原创 2024-02-06 18:21:14 · 938 阅读 · 4 评论 -
关于《二分查找》的基础解析
在查找有序数组的元素的题目中,二分法是一种常见的方法。二分法一般有两种写法,依据题目所给区间而分。而两种写法的区别在于while的表达式中是left<=right或是left<right以及right=middle或是middle-1。由于作者的能力有限,主要解释第一种,即在左闭右闭情况下的二分查找写法;对左闭右开情况作简述。原创 2024-02-04 23:30:00 · 840 阅读 · 2 评论 -
关于《链表》(单向链表的简单操作·下)
承接上篇,本篇介绍单向链表的另外三种简单操作。原创 2023-12-08 22:08:23 · 437 阅读 · 0 评论 -
关于《链表》(单向链表的简单操作·上)
在C语言基础里,链表无疑是较为困难的一部分。但是作为具有逻辑性的东西,我们争取将复杂的问题具象化,便能使其迎刃而解。考虑到问题的复杂性和个人能力,以下只介绍单向链表。原创 2023-12-07 22:32:55 · 398 阅读 · 1 评论 -
关于《简单排序》----选择排序,插入排序,冒泡排序
那么从无序部分中取最左端的元素,将插入有序部分中比较排序(即插入到合适的有序部分中的位置),那么该位置即其之后的元素均向后移一个位置以便有序部分新增一个元素。思路:假定整个数组都是无序的,依次比较相邻两个数的大小,若前面的比后面大,这调换他们的位置。排序后为13,25,8。思路:在N个元素里,总是取最小的元素放在最前端的位置上,直到所有元素排列完毕。冒泡排序与插入排序类似,不过冒泡排序中,无序部分在前面,有序部分在后面。将整数组a分为有序和无序两部分,有序的部分在前面,无序的部分在后面。原创 2023-11-29 01:59:53 · 428 阅读 · 1 评论 -
关于《矩阵的种种》
(1)输入:如果想要输入一个m*n型的矩阵,我们首先要定义一个二维矩阵a[m][n],那么根据输入习惯,一行一行依次输入矩阵中的元素,这样又涉及到了循环。思路:定义三个矩阵(二维数组),其中前两个矩阵行列数相等,第三个矩阵的元素由前两个矩阵各行各列元素相加减。思路:可以另设一个矩阵,使该矩阵为原矩阵的转置,再判断对应行列的元素是否相等。(3)矩阵转置,除了矩阵的加减乘运算外,矩阵的转置也是一种重要的运算。关于矩阵暂时论到这里,重要的是对于线性代数中矩阵的理解。对于矩阵的四则运算只需掌握其运算原理和法则。原创 2023-11-25 20:55:50 · 535 阅读 · 0 评论 -
关于《求素数的方法》
但是,我们发现该方法要判断的数据过多,通过数学知识我们知道,一个数n的因数大小是以√n为“分界线”的(即一个比√n大,一个比√n小),那么我们只需要判断从2到√n中是否有n的因数即可;思路1:要求该数(i)的因数只有1和它本身,则通过待定因数的方法,从2到i-1取值,若其中有i的因数,说明其(i)不是素数。附加:输入一个正整数n(n<=100),在输入n个正整数,求在n个正整数中的素数之和,若无素数则输出0。求素数,即找到一个大于等于2的数,它的因数只有1和它本身。输出要求:输出数组中的质数与质数之和。原创 2023-11-24 22:20:25 · 415 阅读 · 1 评论 -
关于《计算星期方法》
由此观之,一个题目可由多个思路多个方法求解,在程序设计中寻找最简单的方法应是学习程序的同学应具备的意识。多加练习,明确每个方法的思路,找到多个方法之间的区别,就会有“柳暗花明又一村”的感觉啦。附加:已知2021年1月25日是星期三,编写一个程序,输入“年 月 日”表示的一个2012年1月25日以后的日期,输出该星期是星期几(星期天输出0)。天是星期几,并表示工作日(星期一到星期五)和休息日(星期六和星期天),星期天数由。例3:数组加字符串(复杂思路中有许多多余步骤)例1:使用switch语句。原创 2023-11-24 11:47:56 · 459 阅读 · 1 评论