自学内容网 自学内容网

C语言_顺序表_OJ题

1. 移除元素

在这里插入图片描述

思路: 如果只能在原地考虑移除数组的话,其实我们可以想到我们只要做到输出的都是非val值即可。
那么,我们只需要将等于val的值挪到左边,将不等于val的值挪到右边就可以了,再次期间,我们需要使用两个指针控制数组,第一个指针正常便利数组,第二个指针等待第一个指针判断到等于val值进行交换,遍历结束也就区分开了val与非val值。

在这里插入图片描述

输出结果:

在这里插入图片描述

数组去重

在这里插入图片描述

总体思路:遍历数组,两个一前一后指针,如果元素不一样就一起往前面挪动,如果元素一样,就先挪动前指针,直到元素不一样停止下来。后指针先挪动一步(避免覆盖掉当前元素),然后将后指针赋值给前指针。

在这里插入图片描述

输出结果:

在这里插入图片描述

3. 归并数组

在这里插入图片描述

总体思路:我们先找到两个数组有效存储数据的末尾下标,然后找到arr1(也就是合并到的数组)的末尾下标,设置while循环,条件是两个数组有效下标均要>=0,循环中我们需要进行判断,找到两个元素中较大的值然后放到arr[i--]中,对应数组有效存储下标也要进行相应的--操作,直至循环结束,还需要判断另一个数组有没有完全把数据拷贝过来,没有的话,还需要拷贝剩下的有效数据。

在这里插入图片描述

输出结果:

在这里插入图片描述


原文地址:https://blog.csdn.net/m0_74445256/article/details/143470768

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!