[Lidemy 學習筆記]-先別急著寫 leetcode Project3//實作:靈魂伴侶、音速小子、貪婪的小偷

--

白話文理解題目,小心陷阱呦~~~

目錄
1.寫在之前
2.前情提要
3.第一題:靈魂伴侶
4.第二題:音速小子
5.第三題:貪婪的小偷
6.小心得
Photo by Mohamed Nohassi on Unsplash

寫在之前

前情提要

本系列文為學習Huli製作的課程先別急著寫leetcode的心得與實作分享,多使用Python 語言,已經來到 Unit3,經歷過這個章節的題目,我覺得有感受到當使用著線上測試的OJ平台時,應該特別小心的部分,尤其是那個輸入範圍啊!!!!!!!!!!!!!!!!!卡了很久!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

那這一單元的重點我覺得有以下幾點:

  1. 先把題目(通常很長)用白話文跟自己講一次確定題目說的都聽懂了
  2. 再來看清楚題目輸入輸出的方式
  3. 最後也是非常重要的看題目輸入的範圍值(我就卡在這裡QQ)
  4. 還有一個我自己當初沒有想到的問題是要去看一下測試平台提供甚麼樣的套件,由於使用python 撰寫,通常會 import 套件進來,但有些套件平台沒有支援就直接 runtime error (ex :numpy),所以要花點時間去了解一下

那就開始實作Project3的這三道題目囉

第一題:靈魂伴侶

題目為兩個用空格分隔的正整數,若兩數相等輸出Yes,若兩數不同輸出No如下範例:

Sample1
input :30 30
output :Yes
Sample2
input :10 15
output :No
  • Python code:

第二題: 音速小子

題目為一正整數,表示經過的時間(秒),輸出為此時間可跑的距離(公尺),也就是輸入一個正整數,輸出其*340即為答案

input :10
output :3400
  • Python code:

第三題: 貪婪的小偷

題目的背景是這樣的,有一個小偷呢~他想要偷東西,有很多個物品所以小偷要偷取較有價值的那幾樣,最後幫小偷算出他總共偷走多少價值,因此題目的輸入為:

第一行數字表示小偷想偷幾樣
第二行數字表示總共有幾樣東西
依序東西的價值

另外,從輸入值的範圍可能發生一個情形是小偷想偷五樣但實際的東西只有三樣,這個情況也要考慮進去喔!

input :
3 (小偷想偷三樣)
5 (總共有五樣)
1 (第一樣的價值1)
3 (第二樣的價值3)
5 (第三樣的價值5)
7 (第四樣的價值7)
9 (第五樣的價值9)
output :21 (小偷偷三樣最有價值的東西: 5+7+9=21)
  • Python code解法一:
  • Python code解法二:

小心得

經過這幾題的練習,覺得在讀題目的時候會特別注意那幾個要點,尤其是輸入輸出,還有輸入的範圍,不然真的是卡在那邊久久解不出來啊啊啊
讀題目所代表的意思這一段,因為目前題目複雜度不高所以還沒有明顯感覺到,但可能以後更複雜的題目就需要拿出紙筆來畫一下才能夠理解吧,總之就繼續邁向下一個單元囉!

❤️感恩看到這裡的你,希望這篇文章有幫上你👏歡迎拍手給我鼓勵,我是甜不辣馬拉松,我們下次見

--

--

甜不辣馬拉松

幻想自己是貝多芬,可是敲打的卻是機械鍵盤