原创 【劍指offer】21. 調整數組順序使奇數位於偶數前面

解題思路 雙指針,p1指向頭,p2指向尾,p1在遇到偶數時停下,p2在遇到奇數時停下,如果此時p1<p2,則進行交換 代碼 class Solution { public: vector<int> exchange(vec

原创 【OpenGL】太陽星系的實現

一、功能 基本功能 三個球體、一個表示太陽、一個表示地球、一個表示月亮;地球不停地繞太陽旋轉,月亮繞地球旋轉,期間它們三者都發生自轉。 擴展功能 地球有兩個月亮,畫上軌道線,使軌道傾斜,放縮效果 自己完成的效果圖 二、思路 基本功

原创 【LeetCode】面試題 16.17. 連續數列

class Solution { public: int maxSubArray(vector<int>& nums) { if (nums.size() == 0) return 0; vector<int> dp(n

原创 【LeetCode】409. 最長迴文串

思路 若要形成最長的迴文串,則迴文串中只會出現1次單個字符,因此只需統計字符串中有多少個字符其數目爲奇數,s.size()-n個爲奇數個數的字符+1即爲最長迴文串 如果字符串沒有出現奇數個數目的字符,則s.size()即爲最長迴文

原创 【LeetCode】300. 最長上升子序列

思路 一、定義數組元素的含義 dp[i]:到第i個元素的時最長子序列的長度 二、找出關係數組間的關係式 if (nums[i] > nums[j])//出現上升 { dp[i] = max(dp[j] + 1, dp[i]

原创 【OpenGL】光照太陽系

一、要求 二、思路 0、效果圖 1、實現基本的太陽系 採用局部變換的思路完成,實現太陽、地球、月亮及軌道的繪製 2、宇宙中加入一盞泛光(方向光) 加入思路:   1)設置好物體的法向   在這裏可以不進行設置,因爲在OpenGL是一個

原创 【LeetCode】面試題 17.16. 按摩師

解題思路 一、定義數組元素的含義 dp[i]:第i次預約時,按摩師總預約時間長 二、找出關係數組元素間的關係式 第i次時,總預約時長,要麼是從第i-2次接受預約後,本次也接受預約,要麼本次不接受預約 dp[i] = max(dp[

原创 【MIT6.837】A0: IFS

A0:IFS(迭代函數系統) 任務概述 6.837的第一個作業,實現IFS算法。目的是熟悉C++的語法特性,並且熟悉使用兩個和圖像生成和線性代數相關的簡單庫。通過生成一些奇妙的分形物體來體會圖形學的樂趣。 IFS 是一種構造分形的

原创 【MIT6.837】A3:OpenGL & Phong Shading

A3:OpenGL & Phong Shading 實驗概述 實現交互式相機 實現Blinn-Phong光照模型及對應的光滑明暗處理技術 實現繪製各個圖元的方法,尤其是球圖元的繪製 Hints 1、Phong模型與Bling

原创 【MIT6.837】A2:Transformations & Additional Primitives

A2:Transformations & Additional Primitives 實驗概述 本實驗的目標是實現更多的基本圖元(如Plane、Triangle類的實現)、新增兩種渲染模式(normal visualizatio

原创 【MIT6.837】A1:Ray Casting

A1:Ray Casting(光線投射) 學術名詞 camera obscura:針孔照相機 Perspective:透視投影 Orthographic:正交投影 Parallel projection:平行投影 Ray-Pl

原创 【OpenGL】機器人手臂的實現

一、基本功能 實現了機器人的一隻手臂,由上臂、下臂、五根手指共同組成,通過A、S、D、F、G鍵向上旋轉,通過a、s、d、f、g鍵向下旋轉,通過方向鍵left和right轉向,通過up和down實現放縮。 效果圖如下:   二、實現過程

原创 【OpenGL】三維場景漫遊的實現

功能 構建一個三維場景 可利用glut提供的各種簡單形體來搭建,或者讀入別的模型,並加入光照效果 用鍵盤操作一個物體(如一艘飛船,或一個機器人),在三維場景中漫遊 視點可以放在物體上,或跟隨物體,利用gluLookAt()函數來

原创 【MIT6.837】迭代函數系統(IFS)的實現

A0:迭代函數系統(IFS) 任務概述 6.837的第一個作業,實現IFS算法。目的是熟悉C++的語法特性,並且熟悉使用兩個和圖像生成和線性代數相關的簡單庫。通過生成一些奇妙的分形物體來體會圖形學的樂趣。 IFS 是一種構造分形的

原创 【LeetCode】面試題51. 數組中的逆序對

解題思路 分治法: 採用的就是歸併函數中的分治思想,該題與分治排序的不同點在於,在治的過程中進行逆序對的統計,逆序對的個數爲 cnt += center - i + 1; 這也是在歸併排序上要加的代碼 代碼 /* 思路:分治 通過