從別處看到的一道演算法附加題

2022-02-16 13:59:53 字數 1087 閱讀 4271

題目:已知乙個陣列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,則最大的子集和,為集合...