原创 歸併排序

遞歸版 template <class T> void merge(T *a, T *b, int left, int mid, int right) { int i = left, j = mid + 1, k = left; wh

原创 編輯距離

給出兩個單詞word1和word2,計算出將word1 轉換爲word2的最少操作次數。 你總共三種操作方法: 插入一個字符刪除一個字符替換一個字符 樣例 給出 work1="mart" 和 work2="karma" 返回

原创 兩個整數相除

將兩個整數相除,要求不使用乘法、除法和 mod 運算符。 如果溢出,返回 2147483647 。 您在真實的面試中是否遇到過這個題? Yes 樣例給定被除數 = 100 ,除數 = 9,返回 11。

原创 最長公共子序列

             給出兩個字符串,找到最長公共子序列(LCS),返回LCS的長度。 說明 最長公共子序列的定義: 最長公共子序列問題是在一組序列(通常2個)中找到最長公共子序列(注意:不同於子串,LCS不需要是連續的子串)。該

原创 波束在自由空間傳播快速算法(平面到平面)

瑞利-索末菲衍射積分公式被廣泛的應用於這一問題的分析當中。但由於該公式計算過程中所涉及的巨大的計算量,瑞利-索末菲衍射積分可以理解爲兩個式子的卷積,可以利用先做FFT,再做IFFT來簡化,以下是實現代碼,用到了fftw庫。#ifndef

原创 動態規劃(01揹包問題)

首先要想辦法求出狀態轉移方程,自然會想到在揹包放a物品和不放a物品的揹包價值需要做比較,用f(i,y)表示揹包的總價值,i表示第i到n(物品總量)個物品,y表示此時揹包的剩餘容量,即需要求出max{f(i,y),f(i,y-wi)+pi)

原创 移動零

給一個數組 nums 寫一個函數將 0 移動到數組的最後面,非零元素保持原數組的順序 注意事項 1.必須在原數組上操作 2.最小化操作數 樣例 給出 nums = [0, 1, 0, 3, 12], 調用函數之後,

原创 尋找峯值

你給出一個整數數組(size爲n),其具有以下特點:     相鄰位置的數字是不同的     A[0] < A[1] 並且 A[n - 2] > A[n - 1] 假定P是峯值的位置則滿足A[P] > A

原创 判斷是否爲醜數

class Solution { public: /** * @param num an integer * @return true if num is an ugly number or false

原创 組合

組給出兩個整數n和k,返回從1......n中選出的k個數的組合。 樣例 例如 n = 4 且 k = 2 返回的解爲:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4]] 按順序

原创 找一個數字中的單數

class Solution { public: /** * @param A: Array of integers. * return: The single number. */ int singleNumber

原创 基於Weiler-Atherton剪裁布爾運算openGL實現-2D

#pragma once #ifndef LINE_H #define LINE_H #include "Point2.h" class Line { public: Line() {}; ~Line() {}; Line(Poi

原创 判斷是否爲子樹

class Solution { public: /** * @param T1, T2: The roots of binary tree. * @return: True if T2 is a subtre

原创 用vtk畫拋物面

主要運用vtk中vtkQuadric函數 僞代碼 void ModleData::drawParaboloid() { float radius = data[7]; float temp = -4 * data[8]; // dat

原创 用vtk+Qt實現離散數據的體繪製

數據是三維矩陣保存其值,座標表示位置 以下是實現代碼(頭文件和main函數沒有貼上去) #define vtkRenderingCore_AUTOINIT 4(vtkInteractionStyle,vtkRenderingFreeTyp