58同城演算法

2021-10-09 16:17:28 字數 1221 閱讀 7937

58同城題目

58同城出了三道演算法題,第一道題題目過長。。。好像是和推薦系統掛鉤的題目(給cv一條活路吧!t t)

第二道題還有第三道題都是leetcode上很簡單的題目(第一次2ac!主要還是題目簡單)

主要想說一下第二道題目,

給定乙個非負整數num,求在0<=x<=num區間中的所有整數的二進位制數中1的個數,空間複雜度為o(n)。如:

輸入:

3
輸出:

[0,

1,1,

2]

輸入:

5
輸出:

[0,

1,1,

2,1,

2]

題解:

這道題看起來不難,我們可以觀察到如果x是2的指數倍的話,x的二進位制中的1的個數就是1,但是要求空間複雜度為o(n),所以我們不能用遞迴的方法去判斷當前的數字是否是2的指數。

所以引入如果x是2的指數,那麼

x &

(x-1)==

0

的規律

且還有如果x不是2的指數,那麼

x &

(x-1

)== x-

1

的規律

在這裡說一下&的用法,這是個二進位制運算子,會將運算數轉換成二進位制進行運算

1&1

=1,1

&0=0

,0&1

=0,0

&0=0

;

另外,除了&之外,還有 | 運算子和 ~ 運算子。

1|1

=1,1

|0=1

,0|1

=1,0

|0=0

;~0=

1,~1

=0;

所以程式為:

public

class

problem1}}

class

demo1

return res;

}public

intnumc

(int i)

return count;

}}

58同城演算法工程師

簡單而言判別式模型是求分類面。生成式模型是求分布。def findk a,b gap max a,b min a,b if a 1 b 1 x gap 4 4 2 else x gap 1 2 1 print x for i in range x,1,1 if0 i i max a,b 500 fo...

python 爬蟲 58同城

from bs4 import beautifulsoup import requests import csv import time url 已完成的頁數序號,初時為0 page 0 建立乙個有寫許可權的csv file csv file open rent.csv w 建立csv writer...

仿58同城UITableViewCell動畫

在做的過程中也遇到了幾個小的問題,也算是注意點吧。1.cell出現時每個cell的動畫時間一樣,導致沒有依次移動的效果。根據indexpath來設定cell動畫時間,擔心時間增大時最後面的cell會出現的很慢,想著讓indexpath 20這樣來解決,但決定效果不太理想,所以就還是直接用indexp...