原创 【每日leetcode】二叉樹的所有路徑

給定一個二叉樹,返回所有從根節點到葉子節點的路徑。 說明: 葉子節點是指沒有子節點的節點。 示例: 輸入: 1 / 2 3 5 輸出: [“1->2->5”, “1->3”] 解釋: 所有根節點到葉子節點的路徑爲:

原创 順時針九十度旋轉矩陣

題目:給定一個nn的矩陣,順時針把矩陣旋轉90度。 比如說{{1,2,3}{4,5,6}{7,8,9}}。順時針旋轉90度爲{{7,4,1}{8,5,2}{9,6,3}}。 解法一:時間複雜度爲o(nn),空間複雜度爲o(n)。

原创 數組0,1和數組0,1,2排序

數組有0和1,將0排在1之前 思路: 採用兩個指針,一個從前一個從後。 p0找到不爲0的值,p1找不到不爲1的值,二者進行交換。 void sort2(int* arr,int len) { int p0=0; int p1=

原创 蓄水池抽樣——《編程珠璣》讀書筆記

轉載https://blog.csdn.net/huagong_adu/article/details/7619665 問題:如何隨機從n個對象中選擇一個對象,這n個對象是按序排列的,但是在此之前你是不知道n的值的。 思路:如果我

原创 螺釘螺母的匹配問題

轉載自https://www.cnblogs.com/wyc199288/p/6395230.html?utm_source=itdadao&utm_medium=referral 很早之前就看到一道關於螺釘螺母的ACM題目的。最

原创 n個數中隨機選取m個,要求概率相等

轉載自:https://blog.csdn.net/u010296036/article/details/70036924 for循環執行了n次,每次輸出不同的i值,總共滿足條件的i值有m個,因此,m個不重複的數的要求已達到。 下

原创 找出數組中出現次數大於N/K的所有元素

轉載自https://blog.csdn.net/Neo_dot/article/details/80642008 https://blog.csdn.net/u013309870/article/details/69788342

原创 【每日leetcode】擺動排序II

擺動排序II 空間複雜度O(n),時間複雜度O(nlogn) 對原數組排序,得到排序後的輔助數組tmp 對原數組的偶數位下標從末尾元素開始填充 對原數組的奇數位下標從末尾元素開始填充 注意:不要從頭開始填充,例如[5 4

原创 搭積木

題目描述 小明有一袋子長方形的積木,如果一個積木A的長和寬都不大於另外一個積木B的長和寬,則積木A可以搭在積木B的上面。好奇的小明特別想知道這一袋子積木最多可以搭多少層,你能幫他想想辦法嗎? 定義每一個長方形的長L和寬W都爲正整數

原创 從n個數中選出m個數的組合

找出從自然數1,2,3,…,n中任取m個數的所有組合。例如:n=5,m=3時,所有組合爲543,542,541,532,531,521,432,431,421,321。 #include<iostream> #include<cs

原创 小米筆試題

世界上有10種人,一種懂二進制,一種不懂。那麼你知道兩個int32整數m和n的二進制表達,有多少個位(bit)不同麼? 示例1 輸入 1999 2299 輸出 7 class Solution { public: /**

原创 【每日leetcode】路徑總和、路徑總和II、路徑總和III

路徑總和 給定一個二叉樹和一個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。 說明: 葉子節點是指沒有子節點的節點。 示例: 給定如下二叉樹,以及目標和 sum = 22,

原创 找到所有數組中消失的數字

給定一個範圍在 1 ≤ a[i] ≤ n ( n = 數組大小 ) 的 整型數組,數組中的元素一些出現了兩次,另一些只出現一次。 找到所有在 [1, n] 範圍之間沒有出現在數組中的數字。 您能在不使用額外空間且時間複雜度爲O(

原创 【每日leetcode】分糖果、分糖果II

分糖果 給定一個偶數長度的數組,其中不同的數字代表着不同種類的糖果,每一個數字代表一個糖果。你需要把這些糖果平均分給一個弟弟和一個妹妹。返回妹妹可以獲得的最大糖果的種類數。 示例 1: 輸入: candies = [1,1,2,2

原创 全排列中缺少的數

對K個不同字符的全排列組成的數組,面試官從中隨機拿走了一個,剩下的數組作爲輸入,請幫忙找出這個被拿走的字符串? 比如[“ABC”,“ACB”,“BAC”,“CAB”,“CBA”]返回“BCA” 思路:遞歸進行全排列,每一個排列出來