1. 程式人生 > >刪除元素(LintCode)

刪除元素(LintCode)

題目來源:LintCode

原題地址:http://www.lintcode.com/zh-cn/problem/remove-element/

題目:

給定一個數組和一個值,在原地刪除與值相同的數字,返回新陣列的長度。

元素的順序可以改變,並且對新的陣列不會有影響。

您在真實的面試中是否遇到過這個題? Yes 樣例

給出一個數組[0,4,4,0,0,2,4,4],和值 4

返回 4 並且4個元素的新陣列為[0,0,0,2]

難度級別:
容易
思路分析:
此題其實採用c++自帶的迭代器模式來寫就會變得很容易;
需要知道的是,vector中的erase函式要麼刪除指定位置loc的元素,要麼刪除區間[start, end)的所有元素.返回值是指向刪除的最後一個元素的下一位置的迭代器。
因此,我們只需要遍歷vector陣列,當元素相等時,刪除該元素,並利用返回值繼續下一個元素的遍歷就可以了。

實現程式碼:
class Solution
{
public:
    /**
    *@param A: A list of integers
    *@param elem: An integer
    *@return: The new length after remove
    */
    int removeElement(vector<int> &A, int elem)
    {
        vector<int>::iterator it = A.begin();
        for (; it != A.end();)
        {
            if (*it == elem)
            {
                it = A.erase(it);
            } else
            {
                it++;
            }
        }
        return A.size();
    }
};

程式碼說明:
需要注意的是,由於刪除之後返回的是下一個元素的迭代器,這裡刪除元素和指標自動加1是要分開成兩種情況的。是互斥的情形。

相關推薦

刪除元素LintCode

題目來源:LintCode 原題地址:http://www.lintcode.com/zh-cn/problem/remove-element/ 題目: 給定一個數組和一個值,在原地刪除與值相同的數

c++ 列表刪除元素erase

  #include <list> #include <iostream> #include <iterator> using namespace std; int main( ) { list<int> c{0, 1, 2, 3, 4

元素LintCode

題目來源:LintCode 原題地址:http://www.lintcode.com/zh-cn/problem/majority-number/ 題目: 給定一個整型陣列,找出主元素,它在陣列中的

LintCode刪除排序連結串列中的重複元素112

資料結構—線性結構—連結串列:(刪除排序連結串列中的重複元素)一、題目:給定一個排序連結串列,刪除所有重複的元素每個元素只留下一個。樣例:給出 1->1->2->null,返回 1-&

刪除排序鏈表中的重復元素簡單

pan ret margin nsf ace 刪除 nor bold -c 這道題比較簡單,不做過多的描述 給定一個排序鏈表,刪除所有重復的元素每個元素只留下一個。 樣例 給出 1->1->2->null,返回 1->2->null 給出 1

給定二叉搜尋樹和兩個整數A,B 最小整數和最大整數。如何刪除不在該區間內的元素剪枝

由於需要檢查樹中的每一個元素,結點的處理順序可以是從葉子結點到根結點。這樣當處理到結點本身時,其左子樹和右字樹為有效剪枝的BST。 static BianrySearchTreeNode PruneB

JavaScript 新建和刪除DOM 元素節點

建立新的 HTML 元素 如需向 HTML DOM 新增新元素,您必須首先建立該元素(元素節點),然後向一個已存在的元素追加該元素。 例項 <html> <body> <div id="div1"> <p id="p1">這是一個段落。<

線性表中刪除所有值等於X的元素1

/*程式的版權和版本宣告部分: *Copyright(c)2014,煙臺大學計算機學院學生 *All rights reserved. *檔名稱: *作者:田成琳 *完成日期:2014 年 9 月 5 日 *版本號:v1.0 *對任務及求解方法的描述部分: *問題描述:線性

jquery 獲取及操作元素 常用

.com pre img htm color hello fun 文檔 wid jquery 獲取元素 參考:http://www.w3school.com.cn/jquery/jquery_selectors.asp 1.(1)$(document).ready()

JavaScript HTML DOM 元素節點

enc javascrip item pan 效果 demo 移動元素 成功 append 在文檔對象模型 (DOM) 中,每個節點都是一個對象。DOM 節點有三個重要的屬性 : 1. nodeName : 節點的名稱 2. nodeValue :節點的值 3. no

用WebService實現對數據庫進行操作(添加+刪除+修改)

add exe dispose eth 連接 字段 article log conn 轉自:http://blog.csdn.net/beyondqd/article/details/6703169 表為User,字段有 編號: int id,用戶名:string User

訪問樹中的所有元素DOM

解決 優先 一個 示例 function 函數 func 及其 target 創建一個函數,給定頁面上的DOM元素,將訪問元素本身及其所有後代(而不僅僅是它的直接子代)。對於訪問的每個元素,函數應將該元素傳遞給提供的回調函數。 函數的參數應該是: 一個DOM元素

求兩個有序數組的中位數或者第k小元素轉載

href 數組 lan get .cn sdoi com 第k小元素 .html http://www.cnblogs.com/TenosDoIt/p/3554479.html http://www.cnblogs.com/TenosDoIt/p/3675220.htm

【實用代碼片段】將json數據綁定到html元素

bsp lac website dex spl his can ace htm jQuery擴展 jQuery.fn.extend({ ‘jsonBind‘:function(json){ var dom=this; dom.find(‘[json-b

背包問題2 lintcode

maximum ntc ret pack turn notes class spa with 這裏: for(int j = 1;j <= m;j++) result[0][j] = 0x80000000; 不能從0開始,result[0][0]

Selenium2+python自動化42-判斷元素expected_conditions【轉載】

lis 下拉列表 force eight cee .get matches ise blog 前言 經常有小夥伴問,如何判斷一個元素是否存在,如何判斷alert彈窗出來了,如何判斷動態的元素等等一系列的判斷,在selenium的expected_conditions模塊收集

HTML 5常用的交互元素————內容交互元素2

bold 一個 detail img summary htm image adding 內容 summary元素 是<details>的一個子元素 實例1: 交互元素<summary>與<details>的結合使用: <!do

JS設置cookie、讀取cookie、刪除cookie

bstr art code tab subst 如果 png nta reg JS設置cookie、讀取cookie、刪除cookie 轉載 2015-04-17 投稿:hebedich 我要評論 Js操作Cookie總結(設置,讀取,刪除),工作中經常

Selenium2+python自動化42-判斷元素expected_conditions

.com boolean als ESS 返回 sent XA lis alt 前言 經常有小夥伴問,如何判斷一個元素是否存在,如何判斷alert彈窗出來了,如何判斷動態的元素等等一系列的判斷,在selenium的expected_conditions模塊收集了一系列的場景

python--通過xpath相對節點位置查找元素

xpath相對節點 元素查找 相對節點位置查找方法 父節點 兄弟節點 之前寫過相對父元素及下一個兄弟元素的方法。 這次補充一下xpath相對節點位置查找元素的所有方法。例子就不舉了,自己可以去練練。 xpath相對節點查找方法: 1、xpath(‘./ancestor::*‘)查找當前節點