牛客网刷题-合并两个有序数组

前言:
想要学好嵌入式,C语言与数据结构是必要熟练掌握的,而想熟练掌握一门语言,必须经过大量的练习,刷题,至少需要一两万行的代码量,才能具有一定的编程能力,至少拿到一个功能,怎么去用编程语言去实现它,从现在开始我要开启刷题之路,提高自己的编程水平,还有最重要的面试能力。
推荐一款刷题神器 ->
点击跳转进入网站(C语言方向)

牛客网刷题-合并两个有序数组_第1张图片

1.合并两个有序的数组

牛客网刷题-合并两个有序数组_第2张图片
牛客网刷题-合并两个有序数组_第3张图片

题目分析:A数组的有效元素个数为m,B数组的有效元素个数为n,A数组的大小为n+m(确保能容纳A、B两个数组的有效元素),A、B数组都为有序数组,然后将他们合并到A数组中,并仍然保持升序。

解题思路:因为两个数组已经是有序的,所以我们可以从两个数组的最后的有效元素开始比较,把较大的元素放在A数组的最后一个元素,然后依次进行比较。
牛客网刷题-合并两个有序数组_第4张图片
牛客网刷题-合并两个有序数组_第5张图片
牛客网刷题-合并两个有序数组_第6张图片

代码实现:
牛客网刷题-合并两个有序数组_第7张图片
牛客网刷题-合并两个有序数组_第8张图片
如何刷题:
1.如果你是基础不太好,可以先按照题解,跟着手打代码,重点理解题目思路,将题目所用到的知识点,解题技巧提炼出来(锻炼代码能力,解题思路)。牛客网刷题-合并两个有序数组_第9张图片
2.当有一定的代码能力之后,但是看题还是没有思路,可以先看解题思路理解它,然后尝试用代码去实现它。(主要锻炼代码能力,进一步锻炼解题思维)

3.拿到一个题目自己先尝试解题,最好是能将解题思路用画图的方式体现出来,这样更能加深印象,然后用代码实现,实现之后再看看题解,或者别人的解题方法,进行对比,找到最优解题思路
牛客网刷题-合并两个有序数组_第10张图片
最后:在解题过程中,碰到问题如下图(题目提交后通不过,报错(代码可能有bug),尽量独立思考,可以先尝试用它的测试用例,一步一步走读代码,看看问题出现在那个地方,如果实在是没有看出来,可以将该函数拷贝到VS中进行调试代码,一定能找出来。(锻炼自己的代码调试能力)

牛客网刷题-合并两个有序数组_第11张图片

总结:
要想学好嵌入式C语言是根本,但是也离不开数据结构,尤其是链表、队列方面的知识,就接下来我要更新的freerots实时操作系统,就需要用到大量的链表和队列的知识,要想提高自己的编程水平,笔试能力和面试技巧,就得大量刷题手打代码
->点击跳转进入网站(数据结构算法方向)

牛客网刷题-合并两个有序数组_第12张图片

你可能感兴趣的:(牛客网刷题,数据结构,算法,c++)