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;
將所有數兩兩異或則丟失的那個數就會是異或的結果
publicview codeclass
solution
int ans = 0;
for (int i = 0; i < nums.length; i++)
ans = ans ^(nums.length);
return
ans;}}
2.num.570尋找丟失的數ii
給乙個由 1 -n
的整數隨機組成的乙個字串序列,其中丟失了乙個整數,請找到它。
注意事項
n <= 30
您在真實的面試中是否遇到過這個題?
yes樣例給出 n =20
, str =19201234567891011121314151618
丟失的數是17
,返回這個數。
publicview codeclass
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) }}
}
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 ...