每日五問(1)

2021-07-16 02:21:54 字數 2273 閱讀 6234

給定乙個陣列,乙個目標值。假定剛好有兩個數字加起來為目標值,請返回這兩個下標(e.g. list=[1,2,3,0], target=4,返回 [0, 2])

思路:

def

twosum

(self, nums, target):

""" :type nums: list[int]

:type target: int

:rtype: list[int]

"""#拷貝陣列

numlist = nums[:]

#陣列排序

numlist.sort()

#核心部分,分別設定左右兩個指標,若此時指標所指數字和超過target,則右指標向左移,找更小的數字,同理若超過target,則左指標右移,找更大的數字,直至找到目標值

l = 0

r = len(nums) - 1

while (numlist[l]+numlist[r]) != target:

while (numlist[l]+numlist[r]) < target:

l = l + 1

while (numlist[l]+numlist[r]) > target:

r = r - 1

#找到相應數字在原陣列中的下標誌

i = nums.index(numlist[l])

j = nums.index(numlist[r])

#應對兩個數字剛好相等的情況(e.g. [0,1,2,0], target=0 應返回[0,3], 若不做檢查 則會返回[0,0]是錯誤的)

if (j == i):

j = nums.index(numlist[l], i+1)

return [i, j]

def

multi

():return [lambda x: x * y for y in range(3)]

for m in multi():

pirnt (m(2))

#print 44

4

def

arg(val, lst=):

return lst

print (arg(10))

print (arg(20))

#print

[10]

[10, 20]

lst =  * 3     #[, , ]

print (lst) #[[2], [2], [2]]

快排思想

->

->

-> |

-> |

-> |

-> |

-> |

思想就是單次排序後,使陣列分為兩部分,左半部分均小於flag值,右半部分均大於flag值,然後兩半部分再迭代進行單次排序

直接上實現**:

#單次排序

def quick(lst, left, right):

flag = lst[left]

while (left

< right):

while (lst[right] > flag):

right = right - 1

if (left

< right):

tmp = lst[right]

lst[right] = lst[left]

lst[left] = tmp

left = left + 1

while (lst[left] < flag):

left = left + 1

if (left

< right):

tmp = lst[left]

lst[left] = lst[right]

lst[right] = tmp

right = right - 1

return left

#遞迴部分

def quicksort(lst, left, right):

if (left >= right):

return

else:

mid = quick(lst, left, right)

quicksort(lst, left, mid)

quicksort(lst, mid+1, right)

WIFI SDIO 五問五答

1 在sd.c的檔案中定義的host max mclk是怎麼定義的?197000000對應的clk為多少hz?具體的換算公式是怎麼樣的?修改這個clk會影響哪些效能?define host max mclk 197000000 197mhz 在定義最快跑多少 假設max clk 在50mhz 但如果...

每日一問2019 09 26

遍歷物件的方法 有4種。1 for in 2 object.keys foreach3 object.getownpropertynames foreach4 reflect.ownkeys foreach 遍歷物件的方法解析 for in for of區別 for in 遍歷的是鍵名 適合遍歷物件...

FPGA入門五問

fpga和cpu,gpu三者之間的區別?人工智慧的發展 5g 與 fpga 有什麼關聯?什麼驅動了fpga的發展?胡思亂想 彩蛋參考文章 暗矽效應指的是,雖然我們可以不斷增加處理器核心的數量,但是由於能耗限制,無法讓它們同時工作。就好像一幢大樓裡有很多房間,但由於功耗太大,你無法點亮每個房間的燈光,...