首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WF4.0 實戰(十三):以工作流解決微軟面試算法題

     編輯:關於.NET

題目:從 0~65535 不重複整數序列 (0 可重複) 中任取 5 數,判斷是否可構成連續序列。0 為萬用牌可代替任意數。O(n²) 不給分。

演算法分析

核心邏輯:除 0 外的最大值減最小值 ≤ 4 即為連續。單次迴圈找出非零最大/最小值,複雜度 O(n)。

public boolean isContiguous(int[] array)
{
    int min = -1, max = -1;
    for (int i = 0; i < array.length; i++)
    {
        if (array[i] != 0)
        {
            if (min == -1 || min > array[i]) min = array[i];
            if (max == -1 || max < array[i]) max = array[i];
        }
    }
    return max - min <= array.length - 1;
}

WF4 流程實作

主流程架構

GenerateRandom:產生 5 個隨機數

產生隨機數流程

驗證邏輯:找最大/最小值並判斷

驗證流程

輸出結果

輸出流程

完整流程圖

完整流程

執行結果

範圍 0-65535 難產生連續 縮小範圍 1-6 易觀察連續

展示 WF4 同樣能實作複雜演算法,視覺化流程反而讓邏輯更清晰。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved