《劍指Offer》C 實現 Week6

2021-09-27 06:24:43 字數 3213 閱讀 3636

乙個長度為n-1的遞增排序陣列中的所有數字都是唯一的,並且每個數字都在範圍0到n-1之內。

在範圍0到n-1的n個數字中有且只有乙個數字不在該陣列中,請找出這個數字。

樣例輸入:[0,1,2,4]

輸出:3

class solution 

return sum;}}

;

假設乙個單調遞增的陣列裡的每個元素都是整數並且是唯一的。

請程式設計實現乙個函式找出陣列中任意乙個數值等於其下標的元素。

例如,在陣列[-3, -1, 1, 3, 5]中,數字3和它的下標相等。

樣例輸入:[-3, -1, 1, 3, 5]

輸出:3

注意:如果不存在,則返回-1。

class solution 

if(nums[r]

== r)

return r;

return-1

;}};

給定一棵二叉搜尋樹,請找出其中的第k小的結點。

你可以假設樹和k都存在,並且1≤k≤樹的總結點數。

樣例輸入:root = [2, 1, 3, null, null, null, null] ,k = 3

2

/ \1 3

輸出:3

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

void

dfs(treenode *root,

int&k)

};

輸入一棵二叉樹的根結點,求該樹的深度。

從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。

樣例輸入:二叉樹[8, 12, 2, null, null, 6, 4, null, null, null, null]如下圖所示:

8

/ \12 2

/ \6 4

輸出:3

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

};

輸入一棵二叉樹的根結點,判斷該樹是不是平衡二叉樹。

如果某二叉樹中任意結點的左右子樹的深度相差不超過1,那麼它就是一棵平衡二叉樹。

注意:規定空樹也是一棵平衡二叉樹。

樣例輸入:二叉樹[5,7,11,null,null,12,9,null,null,null,null]如下所示,

5

/ \7 11

/ \

12 9

輸出:true

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

intdfs

(treenode *root)

};

乙個整型陣列裡除了兩個數字之外,其他的數字都出現了兩次。

請寫程式找出這兩個只出現一次的數字。

你可以假設這兩個數字一定存在。

樣例輸入:[1,2,3,3,4,4]

輸出:[1,2]

class solution 

return vector<

int>;}

};

在乙個陣列中除了乙個數字只出現一次之外,其他數字都出現了三次。

請找出那個只出現一次的數字。

你可以假設滿足條件的數字一定存在。

思考題:

如果要求只使用 o(n) 的時間和額外 o(1) 的空間,該怎麼做呢?

樣例輸入:[1,1,1,2,2,2,3,4,4,4]

輸出:3

class solution 

return ones;}}

;

輸入乙個陣列和乙個數字s,在陣列中查詢兩個數,使得它們的和正好是s。

如果有多對數字的和等於s,輸出任意一對即可。

你可以認為每組輸入中都至少含有一組滿足條件的輸出。

樣例輸入:[1,2,3,4] , sum=7

輸出:[3,4]

class solution ;}

};class solution

; hash.

insert

(nums[i]);

}return vector<

int>()

;}};

輸入乙個正數s,列印出所有和為s的連續正數序列(至少含有兩個數)。

例如輸入15,由於1+2+3+4+5=4+5+6=7+8=15,所以結果列印出3個連續序列1~5、4~6和7~8。

樣例輸入:15

輸出:[[1,2,3,4,5],[4,5,6],[7,8]]

class solution 

s -= i;

}return res;}}

;

輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。

為簡單起見,標點符號和普通字母一樣處理。

例如輸入字串"i am a student.",則輸出"student. a am i"。

樣例輸入:「i am a student.」

輸出:「student. a am i」

class solution 

return s;}}

;

字串的左旋轉操作是把字串前面的若干個字元轉移到字串的尾部。

請定義乙個函式實現字串左旋轉操作的功能。

比如輸入字串"abcdefg"和數字2,該函式將返回左旋轉2位得到的結果"cdefgab"。

注意:資料保證n小於等於輸入字串的長度。

樣例輸入:「abcdefg」 , n=2

輸出:「cdefgab」

class solution 

};

Week6 限時模擬

從瑞神家打牌回來後,東東痛定思痛,決定苦練牌技,終成賭神!東東有 a b 張撲克牌。每張撲克牌有乙個大小 整數,記為a,範圍區間是 0 到 a 1 和乙個花色 整數,記為b,範圍區間是 0 到 b 1。撲克牌是互異的,也就是獨一無二的,也就是說沒有兩張牌大小和花色都相同。一手牌 的意思是你手裡有5張...

Coursera 機器學習 week6

52nlp的筆記 如何調演算法,可能的措施包括 其中d為迭代次數 1 欠擬合underfitting 高偏差 high bias jt rain 和jcv 都比較大 這時候可以 減小 增加特徵數,引入多項式特徵,但是擴充資料集不管用 2 過擬合 overfitting 高方差 high varian...

week6 實驗(大模擬)

問題分析 心得體會 題目簡述 從瑞神家打牌回來後,東東痛定思痛,決定苦練牌技,終成賭神!東東有 a b 張撲克牌。每張撲克牌有乙個大小 整數,記為a,範圍區間是 0 到 a 1 和乙個花色 整數,記為b,範圍區間是 0 到 b 1。撲克牌是互異的,也就是獨一無二的,也就是說沒有兩張牌大小和花色都相同...