首页 > 其他分享 >LeetCode移除元素

LeetCode移除元素

时间:2024-11-27 19:30:56浏览次数:12  
标签:numsSize val nums int 元素 number 移除 LeetCode

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。

假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作:

  • 更改 nums 数组,使 nums 的前 k 个元素包含不等于 val 的元素。nums 的其余元素和 nums 的大小并不重要。
  • 返回 k
#include <stdio.h>

int removeElement(int* nums, int numsSize, int val) {
    int i, number = 0;
    for (i = 0; i < numsSize; i++) {
        if (nums[i] != val) {
            nums[number] = nums[i];
            number++;
        }
    }
    return number;
}

int main() {
    int nums[] = {3, 2, 2, 3};
    int val = 3;
    int numsSize = sizeof(nums) / sizeof(nums[0]);
    int k = removeElement(nums, numsSize, val);
    
    printf("Array after removing elements equal to %d:\n", val);
    for (int i = 0; i < k; i++) {
        printf("%d ", nums[i]);
    }
    printf("\n");
    printf("Total elements not equal to %d: %d\n", val, k);
    
    return 0;
}

标签:numsSize,val,nums,int,元素,number,移除,LeetCode
From: https://blog.csdn.net/qq_64604732/article/details/144085348

相关文章

  • LeetCode2 两数相加
    LeetCode2两数相加题目链接:LeetCode2描述给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字0之外,这两个数都不会以0开头。示......
  • LeetCode21 合并两个有序链表
    LeetCode21合并两个有序链表题目链接:LeetCode21描述将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,3,4,4]思路方法一:迭代遍历两个列表,逐一比较时间复杂度:O(n+m)......
  • LeetCode第31题:"下一个排列" C#篇
    理解题意: 这道题大概的意思是,将nums数组换一个排列方式,但要求比当前排列要大并且是当前数组大的排列中最小的一种排列思路:相信很多人看到这题第一个会想到的思路是,我只需要将这个数组所有比当前数组大的排列都整理出来,再选出最小的那一个排列,此题可解很显然啊....这不是一......
  • 【leetcode】括号生成 c++回溯法
    22.括号生成 22.括号生成-力扣(LeetCode)数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例1:输入:n=3输出:["((()))","(()())","(())()","()(())","()()()"]示例2:输入:n=1输出:["()"]提示:1<=n<=8......
  • img、input标签它们是行内元素还是块级元素?
    imgandinputarebothinlineelements,buttheybehaveabitlikeinline-blockelements.Let'sbreakdownwhy:HistoricallyInline:Bydefault,bothimgandinputelementsareinline.Thismeanstheyflowwithinthetextcontentofalineandd......
  • C语言——数组逐元素操作练习
            定义一个能容纳10个元素的整形数组a,从键盘读取9个整数存放到前9个数组元素中。一.        从键盘读取一个整数n和位置p(0<=p<=8),插入n到数组a中,插入位置:下标p。要求插入点及后续的数组元素都要后移动。    代码如下:intmain(){ intarr......
  • 算法练习:34. 在排序数组中查找元素的第一个和最后一个位置
    题目链接:34.在排序数组中查找元素的第一个和最后一个位置。在这里我们可以用暴力的解法:就是一次判断,第一次遇见的元素==target,和最后一次遇见的,就保存起来但是这样暴力解法时间复杂度为O(N)。时间复杂度超出了题目意思。优化解法:因为数组是有序的,我们可以根据二分查找思想......
  • LeetCode234 回文链表
    LeetCode234回文链表题目链接:LeetCode描述给你一个单链表的头节点head,请你判断该链表是否为回文链表。如果是,返回true;否则,返回false。示例输入:head=[1,2,2,1]输出:true输入:head=[1,2]输出:false方法一思路首先找到链表的中间结点mid:如果链表有奇数个节......
  • leetcode 53. 最大子数组和
    53.最大子数组和给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。 法一1.假如全是负数,那就是找最大值即可,因为负数肯定越加越大。2.如果有正数,则肯定从正数开始计算和,不然前面有负值,......
  • leetcode78 子集
    leetcode78子集思路:深度优先搜索回溯分析此类问题可以先用树形结构模拟代码逻辑。那么根据这个解答树,首先我们的回溯搜索函数应该由这么几部分组成将搜索获得的答案加入到res中。for循环遍历搜索下一个元素(比如在初始列表为空的时候,第一位可以选1,2,3显然需要通过循环实现)......