无锡网站公司电话,企业网站建设步骤是什么,建站技术分享,160 作者 网站建设大家好#xff0c;我是苏貝#xff0c;本篇博客带大家刷题#xff0c;如果你觉得我写的还不错的话#xff0c;可以给我一个赞#x1f44d;吗#xff0c;感谢❤️ 目录 一.暴力求解法二.使用额外数组三.原地修改数组 点击查看题目 一.暴力求解法
若我们不考虑时间复杂度… 大家好我是苏貝本篇博客带大家刷题如果你觉得我写的还不错的话可以给我一个赞吗感谢❤️ 目录 一.暴力求解法二.使用额外数组三.原地修改数组 点击查看题目 一.暴力求解法
若我们不考虑时间复杂度第一想到的方法应该都是暴力求解法吧遍历数组如果数组元素val用后面的元素将之覆盖。比较简单也不符合题意就不写代码了 二.使用额外数组
第二种方法不符合题意但由于能启发第三种方法所以简单介绍一下 先创建一个元素个数大于或等于nums数组的数组tmpsrc和dst分别是数组nums和tmp的下标初始化都0当nums[src]不等于val时将之拷贝到tmp数组中拷贝的位置为tmp[dst]再srcdst当nums[src]等于val时直接src。 时间复杂度为O(N)空间复杂度为O(N)
三.原地修改数组
创建变量src和dst它们都是数组nums的下标初始化都为0当nums[src]不等于val时让nums[dst]nums[src]再srcdst相当于src位置的元素保留当nums[src]等于val时直接src相当于src位置的元素被移除
int removeElement(int* nums, int numsSize, int val) {int src0;int dst0;for(int i0;inumsSize;i){if(nums[src]!val){nums[dst]nums[src];}else{src;}} return dst;
}好了那么本篇博客就到此结束了如果你觉得本篇博客对你有些帮助可以给个大大的赞吗感谢看到这里我们下篇博客见❤️