1. 程式人生 > >【牛客網】異或計算

【牛客網】異或計算

你就是一個畫家!你現在想繪製一幅畫,但是你現在沒有足夠顏色的顏料。為了讓問題簡單,我們用正整數表示不同顏色的顏料。你知道這幅畫需要的n種顏色的顏料,你現在可以去商店購買一些顏料,但是商店不能保證能供應所有顏色的顏料,所以你需要自己混合一些顏料。混合兩種不一樣的顏色A和顏色B顏料可以產生(A XOR B)這種顏色的顏料(新產生的顏料也可以用作繼續混合產生新的顏色,XOR表示異或操作)。本著勤儉節約的精神,你想購買更少的顏料就滿足要求,所以兼職程式設計師的你需要程式設計來計算出最少需要購買幾種顏色的顏料?

相關推薦

計算

你就是一個畫家!你現在想繪製一幅畫,但是你現在沒有足夠顏色的顏料。為了讓問題簡單,我們用正整數表示不同顏色的顏料。你知道這幅畫需要的n種顏色的顏料,你現在可以去商店購買一些顏料,但是商店不能保證能供應所有顏色的顏料,所以你需要自己混合一些顏料。混合兩種不一樣的顏色A和顏色B顏料可以產生(A XOR B)這種顏

陣列題目I---Python

class Solution: # array 二維列表 def Find1(self, target, array): # write code here for i in range(len(array)):

劍指Offer行榜練習(六)

1、二叉搜尋樹與雙向連結串列 題目描述: 輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成一個排序的雙向連結串列。要求不能建立任何新的結點,只能調整樹中結點指標的指向。 思路: 二叉搜尋樹要轉成排序的雙向連結串列=中序列表+修改連結。既可以把這兩步分開,也可以合起來一起(參照部落格見文末)。

劍指Offer行榜練習(五)

1、棧的壓入、彈出序列 題目描述: 輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否可能為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的一個彈出序列,但4,3,5,1,2就不可能是該壓棧

劍指Offer行榜練習(四)

1、合併兩個排序連結串列 題目描述: 輸入兩個單調遞增的連結串列,輸出兩個連結串列合成後的連結串列,當然我們需要合成後的連結串列滿足單調不減規則。 思路: 兩個指標依次比較兩個連結串列中的值,選擇小的值連結,將這個指標向後移動一位,繼續比較。當一個指標到末尾時就停止,把另外一個連結串

劍指Offer行榜練習(三)

1、二進位制中1的個數 題目描述: 輸入一個整數,輸出該數二進位制表示中1的個數。其中負數用補碼錶示 程式碼: public class Solution { public int NumberOf1(int n) { String str = Integ

劍指Offer行榜練習(二)

1、旋轉陣列的最小數字 題目描述: 把一個數組最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。 輸入一個非減排序的陣列的一個旋轉,輸出旋轉陣列的最小元素。 例如陣列{3,4,5,1,2}為{1,2,3,4,5}的一個旋轉,該陣列的最小值為1。 NOTE:給出的所有元素都大於0,若

劍指Offer行榜練習(一)

1、二維陣列的查詢 題目描述: 在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 思路: 為了避免遍歷陣列,找出第一行中lineIndex,比目

字串排序

題意理解 輸入一串字元,對其排序輸出,排序的方式是對大小字母不區分大小寫按字典序輸出,相同字母大小寫保持輸入順序,其他字元位置不變。 問題分析 用vector,string,stable_sort。 3個排序要求中,第一個要求可以重寫比較函式解決,第二個要求可以用stable_sor

刪除字串中出現次數最少的字元

題意理解 給定一個字串,刪除出現字數最少的字元。 問題分析 用map,vector,string,algorithm處理 先用map統計每個字元的數量,再將map的字元數量對當成元素輸入到vector中,然後對數量欄位排序,遍歷vector前面的字元數字對,如果數字變化就跳出。對於最

汽水瓶

題意理解 有n個空瓶,3個空瓶兌換一個新瓶,2個空瓶可借一瓶喝完湊成3個空瓶再兌換一個新瓶還回去。問最多喝幾瓶? 問題分析 用類似進位制轉換的思路,第一輪,n/3得到新瓶數,n%3得到這一輪剩餘空瓶數,將新瓶數+剩餘空瓶數放到第二輪。依次類推,直到n/3 == 0表示沒有新瓶,如果n%3

座標移動

題意理解 輸入一串字元指令,adws分別表示左右上下四個方向,數字表示移動的座標點數,開始位置在(0,0),求最終座標位置。 問題分析 用string庫處理字串,定位分隔符->取子串迴圈處理,直到結束。 其他 記得迴圈處理輸入。 非起點定位的引數序列是(待搜尋字元,起點

密碼驗證合格程式

題意理解 校驗密碼,密碼前提一個,長度超過2;要求有三個,長度超過8,大寫字母,小寫字母,數字和其他字元至少三種,不得有相同的長度超過2的子串。 問題分析 用string,逐個要求分析,長度判斷用size(); 字元型別用陣列下標逐字元統計四種類型,至少三種的判斷轉化為四個型別數量大

火車進站

題意理解 一組火車進站,編號從0到9,數量和順序不定,求所有可能的出站順序 問題分析 用棧資料結構 用窮舉法,先用排列數next_permutation遍歷所有情況,然後驗證序列是否符合出棧的要求。 驗證出棧序列方法,逐個元素遍歷入棧序列,先入棧,當棧不空,比較棧頂元素和出站序列

整數與IP地址間的轉換

題意理解 給出一個ip和整數,分別轉換成整數和ip,轉換規則是ip每個欄位轉換成8為二進位制數,再拼成32位的二進位制數。 問題分析 ip轉整數,按.取各欄位字串,轉化為整數,再按照a*2^24+b*2^16+c*2^8+d公式計算整數。 整數轉ip,分別整除2^24,2^16,2^

成績排序

題意理解 一組學生名和成績,按照升序和降序排序,保持同分數學生前後順序不變(穩定) 問題分析 用STL,結構體儲存name和分數,vector儲存列表,stable_sort進行排序 其他 stable_sort需要記得 cmp謂詞排序只要指定<,>,不需要帶=

統計每個月兔子的總數

題意理解 生兔子的問題,一隻小兔子長到第三個月生一隻小兔子,問第n個月兔子數量。 問題分析 生兔子的模型這樣定義,一月大的兔子,2月大的兔子,3月或更大的兔子,兔子的數量是這三種月齡兔子的和。它們的數量變動和月份關係如下,3月兔子的數量等於2月兔子的數量加上3月兔子的數量(2月兔子長大變

簡單錯誤記錄

題意理解 統計同文件名,行號的錯誤記錄數量,要求迴圈只打印8個錯誤記錄 問題分析 思路是逐行讀入錯誤記錄,擷取檔名,行號,這樣就組合成一個列表,再對這個列表的元素統計個數。輸出的結果只能保留最後8個錯誤記錄。 轉1:用string庫作字串處理,有io操作getline(cin,str

提取不重複的整數

題意理解 題意簡單,提取不重複的整數,從一個int整數中從低位到高位依次輸出不重複的整數值 問題分析 不重複想到了用stl模板的set,可以自動剔重。 嘗試了以後,發現set有自動排序的功能,放棄,發現有個unordered_set,於是用之。 發現順序是反的,於是找反向迭代器,

DB測試題+英文

1.處理資料庫中讀取的日期資料時,以下哪種方法有助於避免bug? When handle with the date data which read from DB, which methods of follows would avoid bug? The correct