題目:已知乙個陣列a[n],構造乙個陣列b[n],構造規則:b[i]=a[0]*a[1]*a[2]...a[n]/a[i];
要求:1、不可以使用除法;
2、時間複雜度為o(n),空間複雜度為s(0);
3、除遍歷使用的變數外,不可以使用其它變數;
自己的解法雖然不合題意,終究是自己想的,但是極力只用1個.可以使用遍歷變數我就無恥的把他當作遍歷變數吧,空間複雜度就無法滿足了使用遞迴的話.......
思路很簡單:遞迴到最後乙個元素過程中邊計算之前的數字乘法積,然後記錄後面元素乘積和.
//r1 :用來記錄index後的元素乘積
//r2 :index之前的元素的乘積
//index:當前所處的元素的索引號
static void fun(int a, int b, int index, ref int r1, int r2)
個人覺得解法比較精煉,所以貼出來,給自己做個記錄.
1class program
2
11 r1 = 1;
12 fun(a, b, index + 1,ref r1, r2 * a[index]);
13 b[index] = r2 * r1;
14 r1 = a[index] * r1;
15 }
1617
1819
static
void main(string args)
20
29//
console.writeline(total);
30int r1 = 1;
31int r2 = 1;
32 fun(a, b, 0, ref r1, r2);
33for (int i = 0; i < b.length; i++)
34
37 console.readline();
38 }
3940
41 }
知乎看到的一道題
手裡有一副從1到n的牌,每次從牌堆頂取一張放桌子上,再取一張放牌堆底,直到手裡沒牌。這時候,桌子上的牌是從1到n有序的。設計程式,輸入n,輸出牌堆的順序陣列。12 345 1 2345 1 345 2 1 3 4 52 13 524 135 24 13 5 4 2 1 354 2 1354 2 13...
一道演算法題
兩個燒杯,乙個放糖乙個放鹽,用勺子舀一勺糖到鹽,攪拌均勻,然後舀一勺混合 物會放糖的燒杯,問你兩個燒杯哪個雜質多?一樣多吧 對的 為啥?是不是因為 糖和鹽本來就是均勻的 因為,就算不攪拌均,你放一勺過去,那邊放一勺不含雜質的過來,那麼都是一勺雜之 如果攪拌均勻的話也是一樣 小依 21 45 32 也...
一道演算法題
1.上午主要做了對翻譯任務的劃分,下午把 翻譯完畢。2.明天要講的演算法題 對乙個集合,求出其連續元素組成的子集中,和最大的子集 我對這道題的理解是 1 若集合中最小值大於0,意味著所有的都大於0,則最大的子集和,為所有值加起來 2 若集合中最大值小於0,意味著所有的都小於0,則最大的子集和,為集合...