【C语言】27.移除元素【LeetCode】

简介: 测试用例输入的是你*nums指向的数组 所以要注意指针的位置

大家好,欢迎来阅读子豪的博客(LeetCode刷题篇)


大家有什么宝贵的意见或建议可以在留言区留言


如果你喜欢我的博客,欢迎 素质三连 点赞 关注 收藏


我的码云仓库:补集王子 (YZH_skr) - Gitee.com


27. 移除元素 - 力扣(LeetCode) (leetcode-cn.com)


https://leetcode-cn.com/problems/remove-element/

a3000ade901f4f4f81a1ec140a5d4b70.png


题意


1.删除 Val         2.返回新长度


解题代码


int removeElement(int* nums, int numsSize, int val)
{
    int NewSize = 0;
    int* cur = nums;
    while (numsSize)
    {
        if (*cur != val)
        {
            *nums = *cur;
            cur++;
            *nums++;
            NewSize++;
        }
        else
        {
            cur++;
        }
        numsSize--;
    }
    return  NewSize = 0;
}


思路


假如 Val 为 2


37c63133352e4357824ba13e8e681a29.png


1.遇到 Val值


就把cur往后移动一格


068e8d16fda94c0a86a2e8707fbb621c.png


然后把NewSize自加一


2.没遇到 Val值


把cur指向的值赋给nums所指向的空间


2038a69ea96c4eb7b3ff8956fe8e996c.png


然后两个都往后挪一格


8a3a95c4b94e42d1af06b25d824a4983.png


注意


1.这里题目里的numsSize是元素个数(长度),不是数组内存大小


2.测试用例输入的是你*nums指向的数组 所以要注意指针的位置


3.要多动手画图不能干靠想象做题

相关文章
|
4天前
|
存储
力扣 合并两个有序数列||移除元素
力扣 合并两个有序数列||移除元素
10 0
|
6天前
leetcode代码记录(下一个更大元素 II
leetcode代码记录(下一个更大元素 II
9 0
|
6天前
|
索引
leetcode代码记录(下一个更大元素 I
leetcode代码记录(下一个更大元素 I
8 0
|
6天前
leetcode代码记录(移除链表元素
leetcode代码记录(移除链表元素
11 0
|
6天前
leetcode代码记录(移除元素
leetcode代码记录(移除元素
11 0
|
6天前
|
存储 算法 C语言
C语言刷题~Leetcode与牛客网简单题
C语言刷题~Leetcode与牛客网简单题
|
6天前
[leetcode~dfs]1261. 在受污染的二叉树中查找元素
[leetcode~dfs]1261. 在受污染的二叉树中查找元素
[leetcode~dfs]1261. 在受污染的二叉树中查找元素
|
6天前
|
算法 C++
【刷题】Leetcode 1609.奇偶树
这道题是我目前做过最难的题,虽然没有一遍做出来,但是参考大佬的代码,慢慢啃的感觉的真的很好。刷题继续!!!!!!
9 0
|
6天前
|
算法 索引
【刷题】滑动窗口精通 — Leetcode 30. 串联所有单词的子串 | Leetcode 76. 最小覆盖子串
经过这两道题目的书写,相信大家一定深刻认识到了滑动窗口的使用方法!!! 下面请大家继续刷题吧!!!
13 0