1、找第n位數字。
無限數列1,2,3,4,5,6,7,8,9,10,11,12......。第一位是1,第五位是5,第十位是1(10的第首位),第十一位是0(10的末位),第十二位是1(11的首位)........
三步:1、找到第n位所在數字的長度。2,找到第n位所在的具體數字。3,返回第n位。
public int findnthdigit(int n)
start += (n - 1) / len;
string s = integer.tostring(start);
return character.getnumericvalue(s.charat((n - 1) % len));
}
2、整數替換。
給定乙個正整數n,可以對它進行兩種變換:1、如果是偶數,替換該數為n/2。2、如果是奇數,可以替換為n + 1或者n - 1。求最小的次數將n替換為1。
解法1:直觀的解法
class solution
private int help(long n, int count) else }}
1111->10000->1000->100->10->1。如果減1的話:1111->1110->111->110->11->10->1。因此當末尾兩位2進製為都為1時我們應該加1(只有3是例外。11->100->10->1 11->10->1)因為這種情況下我們加1會得到更多的0,其餘的情況減1。
class solution else if((n & 2) == 0 || n == 3) else
res++;
}return res;}}
3、計算沒有重複數字的個數
這道題就是高中學的排列組合的知識:
class solution
return res;}}
演算法導論 趣題集錦(持續更新中)
by 潘雲登 對於商業目的下對本文的任何行為需經作者同意。寫在前面1.本文內容取自 演算法導論 第 2版 題目多為書中習題。書與習題答案可以從這裡 part1 part2 2.所提供的 都是參考書或習題答案編寫,在 gcc 4.3.3 下簡單測試過。3.makefile 檔案可以參考 makefil...
演算法刷題全文筆記(持續更新)
演算法刷題全文索引 劍指offer 66題 sql練習 leetcode刷題筆記 八 leetcode刷題筆記 七 剛進入top 100,這部分挑了自己比較感興趣的一些題來看,比如trie樹或者累加樹,聽過概念但不如一見,也找了很多題解與結構解析來幫助理解,方便日後又忘記概念能很快記起來。leetc...
字串演算法題(會持續更新)
在刷題的過程中,我發現幾乎所有跟字串子串有關的題,我全都不會,因此以後會在這篇下面,總結與字串有關的演算法題。題目描述 在慶祝祖國母親70華誕之際,老師給小樂樂出了乙個問題。大家都知道china的英文縮寫是chn,那麼給你乙個字串s,你需要做的是統計s中子串 chn 的個數。子串的定義 存在任意下標...