日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HackerRank做题

發(fā)布時間:2023/12/20 编程问答 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HackerRank做题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Climbing the Leaderboard

鏈接

https://www.hackerrank.com/challenges/climbing-the-leaderboard/problem

思路

此處兩邊同時遍歷即可,代價是O(n)

知識回顧

python的列表切片后不能賦值:nums[i:] = 1是不可以的

代碼

def climbingLeaderboard(scores, alice):new_scores = list(set(scores))new_scores.sort(reverse = True)# remove duplicate and remain orderindex = len(new_scores) - 1for i in range(len(alice)):while alice[i] >= new_scores[index]:index -= 1if index < 0:for j in range(i, len(alice)):alice[j] = 1breakif index < 0:breakalice[i] = index + 2return alice

Queen’s Attack II

鏈接

https://www.hackerrank.com/challenges/queens-attack-2/problem

思路

用字典來做這種題,每個方向存放該方向能放置的最大棋子個數(shù)。

代碼

def queensAttack(self,n, k, r_q, c_q, obstacles):def check(x, indicator):if indicator == -1:return x-1elif indicator == 0:return nelse:return n - xdef sign(x):if x > 0:return 1elif x == 0:return 0else:return -1position_dict = {0:[1,0],1:[-1,0],2:[1,1],3:[1,-1],4:[0,1],5:[0,-1],6:[-1,1],7:[-1,-1]}obstacles_dict = {}for i in position_dict.values():obstacles_dict["%d%d"%(i[0], i[1])] = min(check(r_q,i[0]), check(c_q,i[1]))for i in range(k):r, c = obstacles[i][0] - r_q, obstacles[i][1] - c_qif abs(r)==abs(c) or r*c == 0:key = "%d%d"%(sign(r), sign(c))length = max(abs(r),abs(c)) - 1if obstacles_dict[key] > length:obstacles_dict[key] = lengthprint(obstacles_dict)return sum(obstacles_dict.values())

總結(jié)

以上是生活随笔為你收集整理的HackerRank做题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。