有道演算法題之一

2021-08-30 06:51:50 字數 1196 閱讀 3884

乙個大公司的筆試題目如下:

題目如下: 寫乙個類,實現這樣乙個方法,此方法給定兩個引數n、l(均為整數) n是乙個自然數,l表示乙個長度。要求此函式輸出乙個最小長度的連續數的陣列,此陣列的幾個連續數的和要等於給定的n,並且該陣列的長度 要大於等於給定的l。如沒有滿足該條件的則返回乙個空陣列{}。

eg1: (18,3)則應該return ; 分析滿足和為18的連續數的陣列有兩個:、 應題目要求輸出最短的陣列,所以結果如上。

eg2: (18,4) 則應該返回結果;

eg3:(45,10)則返回結果為;

本人嘗試著寫出了乙個演算法,現在貼出來,跟大家討論一下.希望大家提供最好的解決方案.

package cn.edu.ccnu.inc.algorithm;

/*** 題目如下: 寫乙個類,實現這樣乙個方法,此方法給定兩個引數n、l(均為整數) n是乙個自然數,l表示乙個長度。要求此函式輸出乙個最小長度的連續

* 數的陣列,此陣列的幾個連續數的和要等於給定的n,並且該陣列的長度 要大於等於給定的l。如沒有滿足該條件的則返回乙個空陣列{}。 eg1:

* (18,3)則應該return ; 分析滿足和為18的連續數的陣列有兩個:、

* 應題目要求輸出最短的陣列,所以結果如上。 eg2: (18,4) 則應該返回結果; eg3:

* (45,10)則返回結果為;

* * @author 桂子山上一棵草

* @email :[email protected]

* @date 2023年10月21日

* */

public class nl

array[i] = i; // 初始化

}int total = 0;

int num = 0;

for (int i = 0; i <= n; i++)

else if (num < min)

while (k <= i)

system.out.println("");

}if (total > n)

}if (min == 0)

");} else

system.out.print("}");}}

public static void main(string args)

{int n = 45;

int l = 3;

showresults(n, l);

測試結果如下:

網易有道演算法題

題目 給16個數字,1 16,每個數字都有乙個出現的概率。然後隨機選中乙個數字,讓你猜是選中的是哪個數字。猜的方法是,你可以給定乙個數字的集合,對方告訴你選中的數在不在你給的集合裡。求最差情況下最好的演算法,還有期望最小的演算法。這道題可以用赫夫曼編碼做,根據數字出現的概率,進行編碼。然後猜的時候,...

基礎演算法題複習之一 快速排序

先對排序演算法來個總結 其中不穩定的有 快,選,希,堆 時間複雜度為o nlogn 的有 快,歸,堆,其中後兩者的平均最好和最壞的時間複雜度都一樣,而快速排序的最差複雜度為o n 2 即初始排序為完全逆序的時候,所以快速排序的效能是會受到初始排序的影響的 即穩定時間複雜度又低的最優排序演算法應該是歸...

水題系列之一

實驗任務 給定乙個正整數 n,找出另乙個正整數 m,使得 n 和 m 轉化為二進位制時,它們所出現的 1 的個數一致,且 m 必須比 n 大。輸出乙個滿足條件的最小的 m。例如 78,轉換成二進位制為 1001110,這個二進位制數中有 4 個 1 而 83 1010011 和 86 1010110...