leetcode刷題記錄 9 簡單

2021-10-08 15:23:49 字數 1871 閱讀 4331

題目:

給出 n 名運動員的成績,找出他們的相對名次並授予前三名對應的獎牌。前三名運動員將會被分別授予 「金牌」,「銀牌」 和「 銅牌」("gold medal", "silver medal", "bronze medal")。

(注:分數越高的選手,排名越靠前。)

思路:拷貝乙份陣列,先排序,然後對數字前三個賦值字串,後面賦值對應的下標

/**

* @param nums

* @return

*/var findrelativeranks = function(nums) `);

}} return nums.map((i) => res.get(i));

};

題目:

對於乙個 正整數,如果它和除了它自身以外的所有正因子之和相等,我們稱它為「完美數」。

給定乙個 整數 n, 如果他是完美數,返回 true,否則返回 false

思路:乙個整數的最大因數是它的平方根向下取整,先取最大可能的因數,然後向下遍歷

/**

* @param num

* @return

*/var checkperfectnumber = function(num) else

}} return sum === num;

};

題目:斐波那契數,通常用f(n)表示,形成的序列稱為斐波那契數列。該數列由01開始,後面的每一項數字都是前面兩項數字的和。也就是:

思路:沒啥說的。用快取或者迴圈都行

/**

* @param n

* @return

*/var fib = function(n) else if (n == 1)

let a = 0;

let b = 1;

for (let i = 2; i <= n; i++)

return b;

};

題目:

給定乙個單詞,你需要判斷單詞的大寫使用是否正確。

我們定義,在以下情況時,單詞的大寫用法是正確的:

全部字母都是大寫,比如"usa"。

單詞中所有字母都不是大寫,比如"leetcode"。

如果單詞不只含有乙個字母,只有首字母大寫, 比如 "google"。

否則,我們定義這個單詞沒有正確使用大寫字母。

思路:首先,如果第乙個字母是小寫,那麼只要後面的字母有大寫的,就返回false;

其次,如果第乙個字母是大寫,那麼後面的字母同時出現大寫和小寫,就返回false;

其他情況返回true

/**

* @param word

* @return

*/var detectcapitaluse = function(word)

} else else;

}} return true;

};

題目:給你一棵所有節點為非負值的二叉搜尋樹,請你計算樹中任意兩節點的差的絕對值的最小值。

思路:二叉搜尋樹的中序遍歷是公升序的,所以只要按照中序遍歷的方式,計算相鄰兩個數的最小絕對差就行了。遇到0就直接終止,一萬年0肯定是最小的

/**

* @param word

* @return

*/var detectcapitaluse = function(word)

} else else;

}} return true;

};

leetcode刷題記錄 1 簡單

題目 給定乙個二叉樹,返回所有從根節點到葉子節點的路徑。說明 葉子節點是指沒有子節點的節點。param root return var binarytreepaths function root const res if root.left root.right binarytreepathsdee...

leetcode刷題記錄 7 簡單

題目 給定乙個非空的字串,判斷它是否可以由它的乙個子串重複多次構成。給定的字串只含有小寫英文本母,並且長度不超過10000。思路 可以遍歷從下標0到長度的一半,如果當前的長度除總長度的餘數為0,說明長度可以整除。然後重複這個字串到總長度,和原字串相比,如果相等,則滿足條件。如果到l 2還沒找到相等的...

leetcode刷題記錄 12 簡單

題目 給定兩個非空二叉樹 s 和 t,檢驗 s 中是否包含和 t 具有相同結構和節點值的子樹。s 的乙個子樹包括 s 的乙個節點和這個節點的所有子孫。s 也可以看做它自身的一棵子樹。思路 遞迴比較。判斷兩顆樹是否有相同的結構,就是比較根節點的val值,如果相同,比較左右子樹的節點值。這樣就可以用遞迴...