LeetCode每週記錄 6

2022-09-02 16:12:14 字數 3925 閱讀 2591

給出乙個列表,把這個列表排序成乙個相對更大的數。例如[1,2,3]經過改變後,變成[1,3,2],注意必須是所有更大的排列情況中最小的那個數,即這個例子中的答案只能是[1,3,2]而不能是[2,1,3]。返回重新排序的列表。

我的思路是從列表倒數第二個數開始向左尋找,找這個數的右側是否有比它大的數,比如在i這發現了右側有比它更大的一些數,從中挑乙個最小的,將它們的位置交換,然後對i位置右側的數進行從小到大排序。這樣得到的陣列,即可滿足題目要求。**:

給出一串由'('和')'組成的字串,從中找出一段最長的合法括號段,返回它的長度。思路是用棧來儲存各個位置的最長字串,遇到左括號時存入當前最長合法長度,並將其清零;遇到右括號時,若棧不為空,則對棧進行pop操作,取出相鄰的最長合法字串,加二後記為當前最長合法字串,並與歷史最長合法字串進行比較;若棧為空,則只進行當前最長合法字串的清零操作。**:

給出乙個由幾個公升序短陣列拼接成的長陣列,從中尋找target的位置,沒有則返回-1,陣列裡的數不重複。這裡直接用了python內建的index方法對target進行檢索:

給出乙個公升序陣列(裡面的數可以重複)和乙個目標數target,找出target在陣列中的起始位置和終止位置。同樣是利用python內建的index方法先找到target的起始位置,然後從起始位置開始向右進行遍歷,遇到target則更新終止位置,遇到的數不是target則退出。**:

尋找插入的位置,給出乙個公升序陣列和目標數target,如果target在陣列裡,則返回它的位置,如果不在,則返回它應該插入的位置(保持陣列的公升序)。我的思路是用二分法進行查詢,中途找到了target直接返回,如果直到最後也沒能找到則返回插入位置。**:

class

solution(object):

defsearchinsert(self, nums, target):

""":type nums: list[int]

:type target: int

:rtype: int

"""if

notnums:

return

p = len(nums) / 2start =0

end = len(nums) - 1

while(1):

if nums[p] ==target:

return

p

else

:

if p ==start:

if target >nums[end]:

return end + 1

if target

return

start

return

end

if nums[p] >target:

end =p

else

: start =p

p = (start + end) / 2

第6組 每週小結 1 3

目錄2專案測試 展示組內最新成果 直觀的為主,文字為輔,只有沒有文字說明要扣分 若是難以用說明的技術性問題可以以文字為主,為輔 選擇題上傳介面,使用者點選減少或增加選項按鈕,可選擇輸入2 7個選項,可以選擇點選下面自動生成的選項按鈕選擇答案,也可自行輸入答案解析,兩種至少選擇一種答案輸入方法。關於選...

第6組 每週小結 1 3

目錄2專案測試 展示組內最新成果 直觀的為主,文字為輔,只有沒有文字說明要扣分 若是難以用說明的技術性問題可以以文字為主,為輔 選擇題上傳介面,使用者點選減少或增加選項按鈕,可選擇輸入2 7個選項,可以選擇點選下面自動生成的選項按鈕選擇答案,也可自行輸入答案解析,兩種至少選擇一種答案輸入方法。關於選...

上午和每週的流量記錄

晨報優勢 容易檢測工作問題,高速決心 規則昨天的每個人的進度首次報告,今天的計畫,然後報告,這可以承諾乙個時間表在全體同仁的前面。給自己壓力。容易推進自己的使命 記錄格式 1 晨會 開始時間 xx xx 張三昨天 a 打100桶水 計畫0 50 實際完畢30 未完畢原因 桶壞了。去修桶用了2個小時 ...