不使用除法的「除法」

2021-10-19 07:45:45 字數 1237 閱讀 1922

題目:

給定乙個字串 s 和一些長度相同的單詞 words。找出 s 中恰好可以由 words 中所有單詞串聯形成的子串的起始位置。

注意子串要與 words 中的單詞完全匹配,中間不能有其他字元,但不需要考慮 words 中單詞串聯的順序。

示例 1:

輸入:s = 「barfoothefoobarman」,

words = [「foo」,「bar」]

輸出:[0,9]

解釋:從索引 0 和 9 開始的子串分別是 「barfoo」 和 「foobar」 。

輸出的順序不重要, [9,0] 也是有效答案。

示例 2:

輸入:s = 「wordgoodgoodgoodbestword」,

words = [「word」,「good」,「best」,「word」]

輸出:提高效率快速逼近結果

舉個例子:11 除以 3 。

首先11比3大,結果至少是1, 然後我讓3翻倍,就是6,發現11比3翻倍後還要大,那麼結果就至少是2了,那我讓這個6再翻倍,得12,11不比12大,嚇死我了,差點讓就讓剛才的最小解2也翻倍得到4了。但是我知道最終結果肯定在2和4之間。也就是說2再加上某個數,這個數是多少呢?我讓11減去剛才最後一次的結果6,剩下5,我們計算5是3的幾倍,也就是除法,看,遞迴出現了。

class

solution

long a = dividend;

long b = divisor;

int sign =1;

if((a >

0&& b <0)

||(a <

0&& b >0)

) a = a >

0? a :

-a; b = b >

0? b :

-b;int res =

div(a, b);if

(sign >0)

return res;

return

-res;

}private

intdiv

(long a,

long b)

return count +

div(a - tb, b);}

public

static

void

main

(string[

] args)

}

《劍指offer》 陣列乘積,不使用除法

題目描述 給定乙個陣列a 0,1,n 1 請構建乙個陣列b 0,1,n 1 其中b中的元素b i a 0 a 1 a i 1 a i 1 a n 1 不能使用除法。這題不准用除法,那麼就轉化。首先想到的是用 先取log再e回去 的做法,但是因為坑比較多,比如a i 等於0的情況,log處理0不好弄。...

不使用除法來做 a b 2

題目 不使用除法來做 a b 2 題目分析 在不使用除法來做兩數的除法時,而且是除以2,所以首先想到的就是資料的右移,右移就是使整數縮小一半,但是這裡要考慮兩數相除得到的不一定都是整數,所以要按情況來補所缺失的0.5.如下 define crt secure no warnings include ...

真除法,floor除法,傳統除法

python3.0 一直執行真除法 eg 4 2 2.0 都帶小數點,和算式中有沒有浮點數無關 python3.0 執行floor除法 一定執行截斷,得到的不是準確值。有浮點型返回浮點型,無浮點型返回int型在python2.6或者之前,對於整數運算會省去小數部分,而對於浮點數運算會保持小數部分在p...