在慕課python基礎課看到一題:十位數迴圈從1至9,個位數迴圈從0至9。
系統給的提示**如下:
#課件給的**
for x in [ ??? ]:
for y in [ ??? ]:
???
剛開始沒看懂課件給的提示啥意思,於是按照自己的思維寫了:
#1
fornum
in range(10, 100):
num = str(num)
ifnum[0] >= num[1]:
continue
print num
計算結果是對了,但是覺得課件給的肯定有他的含義。於是根據提示寫了:
#2
for x in range(1, 10):
for y in range(1, 10):
if x < y:
print
'%s%s' % (x, y)
對比了一下,才發現,這兩個的區別。#1是在已知的資料中,篩選;#2是根據邊角料來拼湊需要的資料。完全是兩種思維方式,不說具體的了,改天有空了詳說。 藍橋杯填空題(一)
以下 可以從陣列a中找出第k小的元素。它使用了類似快速排序中的分治演算法,期望時間複雜度是o n 的。請仔細閱讀分析原始碼,填寫劃線部分缺失的內容。include int quick select int a,int l,int r,int k int i l,j r while i j while...
一道簡單的題
阿里巴巴的一道面試題 25.給定乙個整數陣列和乙個整數,返回兩個陣列的索引,這兩個索引指向的數字的加和等於指定的整數。需要最優的演算法,分析演算法的空間和時間複雜度。include include using namespace std struct stwoindex 初始化,同時等於0,說明不存...
一道簡單DP題
首先,一看就應該知道這是一道dp題。原因在於其當前結果都依賴於前面計算得到的子結果。區分分治和dp的關鍵條件就在於演算法執行中間階段的計算結果是否依賴於其子問題的結果,若依賴則為dp,否則為分治。dp題的關鍵在於找出狀態轉移方程和初始條件 或者稱為邊界值 找出狀態轉移方程的關鍵又在於找對乙個狀態函式...