1. 程式人生 > >第五週作業:Single Number III

第五週作業:Single Number III

題目:

Given an array of numbers nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once.

For example:

Given nums = [1, 2, 1, 3, 2, 5], return [3, 5].

Note:

  1. The order of the result is not important. So in the above example, [5, 3]
     is also correct.
  2. Your algorithm should run in linear runtime complexity. Could you implement it using only constant space complexity?
題解:求陣列中兩個唯一出現一次的兩個數,由於知道用0遍歷異或陣列一遍可得到所求兩個數的異或值,則由求所得值位為1則表示要求的兩個數在那一位值不一樣,則可用這不一樣的位將原陣列分為兩個部分,兩個不一樣的數必然在不同部分中,各自異或遍歷則可得到。 程式碼:
class Solution {
public:
    vector<int> singleNumber(vector<int>& nums) {
        vector<int>a(2,0);
        int res=0;
        int bit=0;
        for(int i=0;i<nums.size();i++)
            res^=nums[i];
            bit=res&(~(res-1));
            for(int j=0;j<nums.size();j++)
            {
                if((bit&nums[j])==0)
                    a[0]^=nums[j];
                else
                    a[1]^=nums[j];
            }
        return a;
    }
};


相關推薦

作業Single Number III

題目: Given an array of numbers nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Fin

作業2 跟蹤類建立的物件

問題: 使用類的靜態欄位和建構函式,我們可以跟蹤某個類所建立物件的個數。請寫一個類,在任何時候都可以向它查詢“你已經建立了多少個物件?”。 解決辦法: 設定一個全域性變數count用來計數,在每個建構函式中用“count++;”來作為自動追蹤,即引用一次方法。原始碼舉例如下: package s

2018-2019-1 20189213《Linux核心原理與分析》作業

第四章:系統呼叫的三層機制(上) 系統呼叫的"三層皮" 分別指的是:使用者態函式(API)、system_call(中斷服務程式入口)以及sys_xyz()系統呼叫處理函式封裝例程。它們各自的作用如下: API 第一層是指Libc中定義的API,這些API封裝了系統呼叫,使用int0x80觸發一個系統

2018-2019-1 20189218《Linux核心原理與分析》作業

系統呼叫的三層機制 使用者態、核心態和中斷 使用者態。較低的執行級別,只能訪問一部分記憶體,只能執行一部分指令。 核心態。高階執行級別,可以訪問任意實體記憶體,可以執行特權指令。 中斷。系統從使用者態進入核心態的主要方式。有硬體中斷和軟中斷。系統呼叫就是通過軟中斷進入核心態。 上下文切

《Linux核心原理與設計》作業

使用庫函式API和C程式碼中嵌入彙編程式碼兩種方式使用同一個系統呼叫 方法一:使用庫函式API在螢幕上顯示程序的ID 先在實驗樓中開啟XFCE,在目錄下輸入指令: vi getpid.c;新建並開啟getpid.c檔案。 隨後再在VI中輸入在網上查閱的實現getpid的函式程式碼後,儲存

Web作業position.fixed vs sticky

Position.fixed vs sticky fixed(固定定位) 元素相對於瀏覽器視窗是固定的,即使是視窗滾動,元素也是固定的 sticky(粘性定位) 基於使用者滾定動來進行定位的,相當於relative定位 fixed定位的結合體 當未超過閾值的時候,他的行為就像relative,當超過

2018-2019-1 20189205《Linux核心原理與分析》作業

系統呼叫的三層機制 使用者態、核心態與系統呼叫 Inter x86 CPU定義了4種不同的執行級別,數字越小特權越高。Linux系統採用了其中的0、3兩個特權級別。 使用者態:Ring3,運行於使用者態的程式碼則要受到處理器的諸多檢查,它們只能訪問對映其地址空間的頁表項中規定的在使用者態下可訪問頁

高階軟體工程作業“希希敬敬對”團隊作業-2

我們團隊的作業是:百度貼吧小爬蟲 隊員學號:     龍江騰(隊長) 201810775001     楊希                   201810812008     何敬上   

2018-2019-1 20189219《Linux核心原理與分析》作業

以前學習計算機作業系統的時候也學習過系統呼叫的三層機制,但是當時都是純理論學習,沒有親身實踐,很多都理解的比較模糊,這裡藉助老師的方法使用內嵌彙編加深理解。 系統呼叫 要想理解系統呼叫的具體含義,我們需要先了解使用者態、核心態和中斷三個概念。簡單的來說: 在使用者態下,我們可以執行使用者態程序,而

2018-2019-1 20189206 《Linux核心原理與分析》作業

linux核心分析學習筆記 ——第四章 系統呼叫的三層機制 學習重點——系統呼叫 使用者態、核心態和中斷 Intel x86 CPU有四種不同的執行級別,分別是0,1,2,3其中數字越小,特權越高。 Linux作業系統只採用了其中的0和3兩個特權級別,分別對應核心態和使用者態。

2018-2019-1 20189203《Linux核心原理與分析》作業

第一部分 課本學習 使用者態、核心態和中斷 1.核心態:處於高的執行級別下,程式碼可以執行特權指令,訪問任意的實體地址,這時的CPU就對應核心態,對所有的指令包括特權指令都可以執行。 2.使用者態:處於低的執行級別下,程式碼只能在級別允許的特定範圍內活動。在日常操作下,執行系統呼叫的方式是通過庫

20189220 餘超《Linux核心原理與分析》作業

扒開系統呼叫的三層皮?(上) 第4章的基礎知識 Linux系統呼叫的三層機制:xyz()(API函式)、system_call(系統呼叫處理入口) 、 sys_xyz()(系統呼叫核心處理函式)。 32位的X86機器上在使用者態的時候只能訪問0x00000000—0xbfffffff的地址空間,

《Linux核心原理與分析》作業

課本:第4章 系統呼叫的三層機制(上) -使用者態、核心態和中斷 -使用者態:在低的執行級別下,程式碼能夠掌控的範圍有所限制,只能訪問部分記憶體。 -核心態:在高的執行級別下,程式碼可以執行特權指令,訪問任意的實體記憶體。 -中斷:從使用者態進入核心態的主要方式。 -中斷類別 - 硬體中斷:在使用者態程序執

2018-2019-1 20189210 《LInux核心原理與分析》作業

一、系統呼叫實驗 1、庫函式將系統呼叫封裝起來,大多數程式設計師使用庫函式進行系統呼叫。 2、Linux作業系統的體系架構分為使用者態和核心態。CPU的執行級別對應的就是核心態,所有指令都可以執行。使用者態對應的就是低級別指令。 3、系統呼叫也是一種中斷,中斷處理是從使用者態進入核心態的主要方式,系統呼叫是一

高階軟體工程作業東理三劍客團隊作業-2

團隊的作業是:圖書管理系統 隊員學號:     金安安(隊長) 201810812003     謝竟成      201810812002     彭麗君     201810812010 1.需求分析

2018-2019-1 20189204《Linux核心原理與分析》作業

第四章——系統呼叫的三層機制(上) 4.1使用者態、核心態和中斷 庫函式封裝系統呼叫,使得程式設計師不直接接觸到系統呼叫,保持整個系統的穩定,避免崩潰。 1.使用者態與核心態的區分 核心只能被系統呼叫操作,系統呼叫可以被API、Shell、應用程式操作,API和SHELL可以被應用程式操作 2.Intel

《演算法設計與分析》作業

《演算法設計與分析》第五週作業 標籤(空格分隔): 課堂作業 文章目錄 《演算法設計與分析》第五週作業 @[toc] 前言 題目概要 思路 具體實現 心得 原始碼:

LeetCode260Single Number III

Given an array of numbers nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elem

作業 磁碟分割槽、shell指令碼、lvm邏輯卷

一、什麼是GPT,有什作用? inux中磁碟分割槽分為MBR和GPT。一一MBR全稱為Master Boot Record,為主引導記錄,是傳統的分割槽機制,應用於絕大多數使用的BIOS的PC裝置。 MBR分割槽主分割槽數目不能超過4個 MBR分割槽方案無法支援超過2TB容量的磁碟。因為這一方案

作業-字型設定

/* * 功能:字型應用 * 作者:林同學 */ import java.awt.*; import java.awt.font.*; import javax.swing.*; public class FontSet { public static void main(String