乙個大公司的筆試題目如下:
題目如下: 寫乙個類,實現這樣乙個方法,此方法給定兩個引數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...