原创 使用always過程塊實現一個選擇運算器及八選一數據選擇器

1、使用always過程塊實現一個可加減與或非運算的運算器 (1)、代碼部分: `define plus 3'd0 `define minus 3'd1 `define band 3'd2 `define bor 3'd3 `define

原创 LintCode--斐波納契數列

問題描述: 查找斐波納契數列中第 N 個數。 所謂的斐波納契數列是指: 前2個數是 0 和 1 。第 i 個數是第 i-1 個數和第i-2 個數的和。 斐波納契數列的前10個數字是: 0, 1, 1, 2, 3, 5, 8, 13

原创 LintCode_x的平方根

問題描述: 實現 int sqrt(int x) 函數,計算並返回 x 的平方根 樣例:sqrt(3) = 1,sqrt(4) = 2,sqrt(5) = 2,sqrt(10) = 3 挑戰:O(log(x))(即要求循環次數不可

原创 排序算法學習心得

近期終於弄懂了六種算法,寫個小博客記錄下 一、六種算法解析: 1、直接插入排序: (1)、算法思想:每次抽取一個數據,與前面排好的數據相比較,找到相應的位置插入,然後抽取下一個數據; (2)、算法特點:保證每一次遍歷後,前面的數據都是排序

原创 有限狀態機--自動售報機

設計一個有限狀態機,不論什麼功能,關鍵點在於: (1)、狀態循環中,有哪些狀態,即畫出狀態轉換圖; (2)、改變這些有限狀態,有哪些條件; (3)、最終的輸出,即在何種狀態下會有輸出。 下面就是我的設計啦: 1、設計模塊: module

原创 LintCode_Remove Linked List Elements

問題描述: Remove all elements from a linked list of integers that have value val. 樣例 Given 1->2->3->3->4->5->3, val = 3,

原创 LintCode_尾部的零

問題描述: 設計一個算法,計算出n階乘中尾部零的個數 樣例:11! = 39916800,因此應該返回 2 算法實現: 方法一:這是個數學題,最開始就想到應該檢測n階乘中有多少個5的因子,因此採用一個for循環,遍歷2~n的每個數,判斷

原创 LintCode_兩個整數相除

問題描述: 將兩個整數相除,要求不使用乘法、除法和 mod 運算符。如果溢出,返回 2147483647 。 樣例:給定被除數 = 100 ,除數 = 9,返回 11。 算法思想: 方法一:(這是開始自己想出來的,算法思想簡單,缺點

原创 LntCode_二叉樹的排序方法

二叉樹的排序方法主要有下圖三種: (1)、前序序列:根節點->左子樹->右子樹 (2)、中序序列:左子樹->根節點->右子樹 (3)、後序序列:左子樹->右子樹->根節點 1、中序排序方法: (1)、非遞歸算法: public

原创 LintCode_顏色分類

問題描述: 算法描述: 根據上面的說明,我設計了兩種算法,第一種遍歷兩次,第二種只遍歷一次 方法一: public static void sortColors1(int[] nums) { i

原创 LintCode_最小差

問題描述: 給定兩個整數數組(第一個是數組 A,第二個是數組 B),在數組 A 中取 A[i],數組 B 中取 B[j],A[i] 和 B[j]兩者的差越小越好(|A[i] - B[j]|)。返回最小差。 樣例:給定數組 A = [3

原创 Lint_Code_最多有多少個點在一條直線上

問題描述: 給出二維平面上的n個點,求最多有多少點在同一條直線上。 樣例:給出4個點:(1, 2), (3, 6), (0, 0), (1, 3)。一條直線上的點最多有3個。 算法思想:點和點在不在一條直線上,關鍵兩點之間的斜率是

原创 LintCode_數組剔除元素後的乘積

問題描述: 給定一個整數數組A。 定義B[i] = A[0] * ... * A[i-1] * A[i+1] * ... * A[n-1], 計算B的時候請不要使用除法。 樣例:給出A=[1, 2, 3],返回 B爲[6, 3,

原创 LintCode_有效的括號序列

問題描述: 算法設計: 此題的關鍵點在於棧的使用;棧是先入後出的特點,像疊積木一樣,往棧中添加元素時,從下往上一層層添加;而將棧中的元素刪除時,則從頂往下刪除,每次最先刪除的肯定棧頂元素; public static bool

原创 LintCode_Pow(x, n)

問題描述: 算法設計:要特別注意n可爲正,也可爲負數 方法一:直觀上,最簡單的方法就是:根據參數n直接遍歷循環,但是遍歷次數多,時間長; public static double myPow(double x, int n) {