2019 力扣杯 全國高校春季程式設計大賽題解

2021-09-19 09:30:39 字數 2957 閱讀 1214

給定乙個數字n,當它滿足以下條件的時候返回true

把原數字旋轉180°以後得到新的數字。

如 0, 1, 6, 8, 9 旋轉 180° 以後,得到了新的數字 0, 1, 9, 8, 6 。

2, 3, 4, 5, 7 旋轉 180° 後,得到的不是數字。

易混淆數字 (confusing number) 就是乙個數字旋轉180°以後,得到和原來不同的數字,且新數字的每一位都是有效的。

例:

輸出:true解釋:把 6 旋轉 180° 以後得到 9,9 是有效數字且 9!=6 。輸入:89輸出:true解釋:把 89 旋轉 180° 以後得到 68,86是有效數字且 86!=89 。輸入:11輸出:false解釋:把 11 旋轉 180° 以後得到 11,11 是有效數字但是值保持不變,所以 11 不是易混淆數字。
思路:簽到題,注意是選擇180度。判斷是否存在2,3,4,5,7,然後翻轉判斷是否相等。

class solution:

def confusingnumber(self, n: int) -> bool:

n=int(n)

dic=

s=n=str(n)

for i in n[::-1]:

if i in dic:

else:

return false

if int("".join(s))==int(n):

return false

else:

return true

在由 2d 網格表示的校園裡有n位工人(worker)和m輛自行車(bike),n <= m。所有工人和自行車的位置都用網格上的 2d 座標表示。

我們需要為每位工人分配一輛自行車。在所有可用的自行車和工人中,我們選取彼此之間曼哈頓距離最短的工人自行車對  (worker, bike) ,並將其中的自行車分配給工人。如果有多個 (worker, bike) 對之間的曼哈頓距離相同,那麼我們選擇工人索引最小的那對。類似地,如果有多種不同的分配方法,則選擇自行車索引最小的一對。不斷重複這一過程,直到所有工人都分配到自行車為止。

給定兩點p1p2之間的曼哈頓距離為manhattan(p1, p2) = |p1.x - p2.x| + |p1.y - p2.y|

返回長度為n的向量ans,其中a[i]是第i位工人分配到的自行車的索引(從 0 開始)。

示例 1:

輸入:workers = [[0,0],[2,1]], bikes = [[1,2],[3,3]]

輸出:[1,0]

解釋:工人 1 分配到自行車 0,因為他們最接近且不存在衝突,工人 0 分配到自行車 1 。所以輸出是 [1,0]。

示例 2:

輸入:workers = [[0,0],[1,1],[2,0]], bikes = [[1,0],[2,2],[2,1]]

輸出:[0,2,1]

解釋:工人 0 首先分配到自行車 0 。工人 1 和工人 2 與自行車 2 距離相同,因此工人 1 分配到自行車 2,工人 2 將分配到自行車 1 。因此輸出為 [0,2,1]。

0 <= workers[i][j], bikes[i][j] < 1000所有工人和自行車的位置都不相同。

1 <= workers.length <= bikes.length <= 1000

思路:

計算每兩個點間的距離,將worker存入列表中,然後排序完再遍歷,遍歷時注意判斷worker是否已經分配到自行車以及自行車是否被分配。

class solution:

def assignbikes(self, workers: list[list[int]], bikes: list[list[int]]) -> list[int]:

def distance(a, b):

return abs(a[0] - b[0]) + abs(a[1] - b[1])

ans=[-1]*len(workers)

used_bike=[0]*len(bikes)

dis=

for i in range(len(workers)):

for j in range(len(bikes)):

dis.sort()

for i in dis:

if ans[i[1]]==(-1) and used_bike[i[2]]!=1:

ans[i[1]]=i[2]

used_bike[i[2]]=1

else:

continue

return ans

emmm python寫這道題超時了一次。。。應該用c++的。可以參考下家樂同學的c++解法

2019 力扣杯 全國高校春季程式設計大賽決賽題解

給出乙個有序陣列a,陣列中的每個數字都是獨一無二的,找出從陣列最左邊開始的第k個缺失數字。示例 1 輸入 a 4,7,9,10 k 1 輸出 5 解釋 第乙個缺失數字為 5 示例 2 輸入 a 4,7,9,10 k 3 輸出 8 解釋 缺失數字有 5,6,8,因此第三個缺失數字為 8 示例 3 輸入...

LeetCode 2019 力扣杯全國秋季程式設計大賽

2019.9.24晚,第一次參加線上比賽 比賽排名結果 582 1541,做出了2道題。我證明了 我不是最菜的!小a 和 小b 在玩猜數字。小b 每次從 1,2,3 中隨機選擇乙個,小a 每次也從 1,2,3 中選擇乙個猜。他們一共進行三次這個遊戲,請返回 小a 猜對了幾次?輸入的guess陣列為 ...

聚焦2019 攀公升杯 全國高校工業設計大賽總決賽!

長江疊浪,波瀾浩蕩 東湖潮湧,水擊橫堤 長江之濱,東湖之畔。今日,2019 攀公升杯 全國高校工業設計大賽總決賽在武漢東湖國際會議中心盛大開幕 巔峰角逐 聚焦 攀公升杯 全國高校工業設計大賽決賽 攀公升杯 全國高校工業設計大賽自 9 月 21 日開啟以來,共有來自全國各地近百家頭部大學院校的積極響應...