演算法題(Math) 持續更新

2021-09-13 17:21:59 字數 1179 閱讀 4773

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 的個數。子串的定義 存在任意下標...