乙個簡單至極的變長陣列,僅僅是在原生陣列中新增了自動變長功能
參考stl中vector的實現,每次下標越界,就將陣列容量擴大一倍。
申請新的空間,是原長度的二倍
從原記憶體複製所有內容到新記憶體
釋放原記憶體
/*
author: trialley
date: 2019-7-26
licence: mit
*/#pragma once
#include
//memset,memcpy
#include
//malloc
template
class darray
// "&" is a must !
t& operator (
int i)
return head[i];}
exlength()
};
資料結構與演算法 動態匹配演算法
如下 示例 package algorithm 動態匹配演算法解決揹包問題 public class packed int weight 表示揹包中的最大容量 int m 4 定義乙個二維陣列表示存放的最大 int v new int weight.length 1 m 1 定義乙個二維陣列來表示將...
演算法與資料結構 動態規劃
動態規劃 dp 的基本思想是 當前子問題的解可由上一子問題的解得出。動態規劃演算法通常基於由乙個遞推公式 狀態轉移方程 和若干個初始狀態 狀態 應用 1 lis longest increasing subsequence 求乙個陣列中的最長非降子串行的長度。子問題 我們可以考慮先求a 0 a 1 ...
演算法與資料結構 動態規劃
用遞迴求解問題時,反覆的巢狀會浪費記憶體。而且更重要的一點是,之前計算的結果無法有效儲存,下一次碰到同乙個問題時還需要再計算一次。例如遞迴求解 fibonacci 數列,假設求第 n 位 從 1 開始 的值,c 如下 include intfib int n return fib n 1 fib n...