leetcode第25题--Remove Element

problem:

Given an array and a value, remove all instances of that value in place and return the new length.

The order of elements can be changed. It doesn‘t matter what you leave beyond the new length.

将一个数组里的和给定元素相同的元素删除,在该数组里操作,返回剩下的个数。注意,数组的前部分要保留答案。我本来直接扫一遍,输出n--,错了。还要改变A的值。如下

class Solution {
public:
    int removeElement(int A[], int n, int elem) {
        int result = n, j = 0;
        for (int i = 0; i< n; i++)
        {
            if(A[i] == elem)
                result--;
            else
                A[j++] = A[i];
        }
    return result;
    }
};
时间: 2024-10-26 11:16:27

leetcode第25题--Remove Element的相关文章

leetcode第27题-Remove Element

#include<stdio.h> #include<stdlib.h> int removeElement(int A[], int n, int elem) { if(n==0) return 0; int len=n; for(int i=0,pos=0;i<n;i++) { if(A[i]==elem) len--; else A[pos++]=A[i]; } return len; } int main() { int n; while(scanf("%d

LeetCode 第 19 题 (Remove Nth Node From End of List)

LeetCode 第 19 题 (Remove Nth Node From End of List) Given a linked list, remove the nth node from the end of list and return its head. For example, Given linked list: 1->2->3->4->5, and n = 2. After removing the second node from the end, the li

LeetCode记录之27——Remove Element

这道题跟26题很类似,并且有官方的答案.看了官方的答案之后发现写得特别巧,自己做的题太少思路太窄.有意思的是我的算法的时间复杂度是O(N^2),官方的是O(N),我的实际运行时间还少了2ms. iven an array and a value, remove all instances of that value in place and return the new length. Do not allocate extra space for another array, you must

leetcode第26题--Remove Duplicates from Sorted Array

problem: Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length. Do not allocate extra space for another array, you must do this in place with constant memory. For example,Given input ar

LeetCode(27)Remove Element

题目 Given an array and a value, remove all instances of that value in place and return the new length. The order of elements can be changed. It doesn't matter what you leave beyond the new length. 分析 这是一道很简单的题目,对数组进行一次遍历,删除与给定值相等的关键字,返回新长度即可. AC代码 cla

第18题 Remove Element

Given an array and a value, remove all instances of that value in place and return the new length. The order of elements can be changed. It doesn't matter what you leave beyond the new length. Solution1: public class Solution { public int removeEleme

leetcode第19题-Remove Nth Node From End of List

本题比较简单,主要考察了单链表的创建与删除. 但是有一个问题需要着重的考虑,如何快速定位链表的倒数第n个节点.这就需要两个辅助节点,一个节点先走到正数第n个位置,然后两个辅助节点一块往后走,最后后面的节点的位置就是我们需要的倒数第n个节点. #include<stdio.h> #include<stdlib.h> struct ListNode//定义节点 { int value; struct ListNode *next; }; ListNode *removeNthFromE

leetcode第203题-Remove Linked List Elements

题目要求:从一个链表中删除指定的元素. 分析:首先要考虑链表的非空问题,我想这应该是判断链表和数组问题最首先要考虑处理的问题.其次是如果前几个元素都是与指定元素相同,也要做一次处理,使head指向(在非空的情况下)与指定元素不相等的第一个元素.注意:在这里我碰到了一个很可笑的问题,就是while里面循环的判断条件,应该让head!=NULL在前面,这样就能保证head->val的值的问题,一直在这里出问题,后来才检查出来.然后再定义两个指针,第一个指针p指向当前的元素,第二个指针指向下一个节点,

leetcode第83题-Remove Duplicates from Sorted List

这道题与实现数组中的删除重复元素类似.我们来看一下具体的过程,首先要判断是否为空(在这个上面吃了大苦头),删除下一个相同的元素的时候要定义一个tmp元素,再free掉即可. #include<stdio.h> #include<stdlib.h> struct ListNode { int val; ListNode *next; }; ListNode *deleteDuplicates(ListNode *head) { if (head) { struct ListNode