Lintcode解題報告

2022-08-20 16:15:10 字數 1318 閱讀 7614

1. num.196 尋找缺失的數

給出乙個包含 0 .. n 中 n 個數的序列,找出0 .. n 中沒有出現在序列中的那個數。

注意事項

可以改變序列中數的位置。

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

yes樣例n =4且序列為[0, 1, 3]時,缺失的數為2

1.可以1~n-1求和再減去陣列中數字的總和,差值即為缺失的數,但是容易造成溢位.

2.利用異或的性質

k^k = 0;

0^k = k;

將所有數兩兩異或則丟失的那個數就會是異或的結果

public

class

solution

int ans = 0;

for (int i = 0; i < nums.length; i++)

ans = ans ^(nums.length);

return

ans;}}

view code

2.num.570尋找丟失的數ii

給乙個由 1 -n的整數隨機組成的乙個字串序列,其中丟失了乙個整數,請找到它。

注意事項

n <= 30

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

yes樣例給出 n =20, str =19201234567891011121314151618

丟失的數是17,返回這個數。

public

class

solution

boolean flag = new

boolean[n + 1];

findhelper(flag, n, 0, 0, str);

return

ans;

}public

void findhelper(boolean flag, int n,int sum, int

index, string str)

//連續的兩位字元,判斷哪個滿足條件

for (int i = 1; i <= 2; i++)

if (num <= n && !flag[num])

//在最後乙個字元位置就不需要遍歷兩字元的情況了 + 找到之後就不需要繼續找

if (index == str.length() - 1 || ans != 0) }}

}

view code

LintCode解題目錄

看見 lintcode 的 能力測試cat coding ability test 挺好,有倒計時,挺有面試緊迫感。做個記錄。另有本人 leetcode解題目錄 程式設計師面試金典 解題目錄 劍指offer 解題目錄 我的 lintcode 主頁 75 1505 演算法問題 已通過 4 cat 證書...

Block Voting 解題報告

這道題做的有點狼狽,效率不高,差一點就tle的ac了。看status裡的,ac的時間大多數都是0ms的。肯定有乙個更有效率的演算法的。下面說下我的狼狽演算法。出處 http acm.jlu.edu.cn joj showproblem.php?pid 1223 問題描述 求每個party的權值。第i...

Safebreaker 解題報告

又是吉林大學一道acm題目,題目很簡單,直接暴力解決。出處 http acm.jlu.edu.cn joj showproblem.php?pid 1718 問題描述 對乙個給定數0000 9999 根據一系列猜測,判斷這個數是否存在,存在的話,是否唯一 例如 3321,給定數 作出猜測,1223 ...