原创 【LeetCode】1025. 除數博弈

思路 方法一 動態規劃 第一步:定義數組元素的含義 dp[n]:數字爲n時,此時取數字者的遊戲結果 第二步:找出關係數組元素間的關係時 假設Alice的dp[i]=false; 如果Alice取某個數字後,能使得Bob一定爲fal

原创 【OpenGL】繪製四邊形

EBO、VBO和VAO的簡介 思路 畫一個四邊形,可以有兩種方法 1、通過2個三角形拼接而成,這就和前一個實驗畫三角形類似,利用VAO和VBO實驗,我們要做的只是需要把給出的頂點增加爲6個即可。 2、但是我們會發現使用上述

原创 【OpenGL】繪製球體

步驟 1-初始化: GLFW窗口,GLAD 2-計算球體頂點: 通過數學方法計算球體的每個頂點座標 3-數據處理: 通過球體頂點座標構造三角形網絡,生成並綁定VAO&VBO&EBO(準備再GPU中進行處理),設置頂點屬性指針(本質

原创 【語言特性】C/C++頭文件的引用格式

#include<> 1.在編譯器設置的include路徑內搜索; 2.如果是在命令行中編譯,則在系統的INCLUDE環境變量內搜索。 #include"" 1.在包含當前include指令的文件所在的文件夾內搜索; 2.如果上一

原创 【LeetCode】69. x 的平方根

解題思路 題目要求的是x的平方根,且只保留整數的部分,小數部分都被捨去 以x=8爲例,題目是 求最後1個小於2.828的正整數 這屬於“尋找有序序列中第一個滿足某條件的元素的位置”中的一類題目(所要求的的正整數就是位置),如果想要

原创 【算法】二分查找

前言 最近自己在做二分查找類題目,二分查找是非常基礎的算法,但其並不簡單,有很多細節需要掌握,因此自己結合資料進行了一些整理,在看完這些後,建議做幾道給出的習題這樣效果會更好。 二分查找介紹 二分查找是基於有序序列的查找算法。二分

原创 【LeetCode】278. 第一個錯誤的版本

解題思路 二分查找的經典問題:“尋找有序序列中第一個滿足某條件的元素的位置” 時間複雜度:O(logn)。 空間複雜度:O(1)。 代碼 // Forward declaration of isBadVersion API. bo

原创 【LeetCode】167. 兩數之和 II - 輸入有序數組

解題思路 自己開始的思路是,對另一個數,在已有的數組中進行二分查找,而不是簡單的遍歷,自己覺得複雜度挺小的O(nlogn),但是一直超時,同時自己的代碼考慮了一種情況[2,7,7,10,11],target=9,如果是官方題解應該

原创 【LeetCode】994. 腐爛的橘子

解題思路 思路:多個腐爛橘子,讓其均入隊,對這些腐爛橘子同時廣度優先使其周圍橘子腐爛 算法: 1、先找出腐爛橘子,添加進queue 2、出隊時,讓當前腐爛橘子四周的新鮮就只都變爲腐爛,即grid[tempX][tempY]=2;

原创 【OpenGL•錯誤】visual studio2019報錯 無法解析的外部符號gladLoadGLLoader,該符號在函數main中被引用...

遇到的錯誤 今天在打開之前寫的OpenGL繪製三角形的程序時,發現一直報如下錯誤 當時一直以爲是自己沒有鏈接好頭文件和庫文件,經過上網搜索,終於找到了問題所在,是自己沒有把glad.c文件添加到項目中。 解決辦法 之前記得自己添

原创 【OpenGL】繪製三角形

實驗步驟 步驟: 1-初始化: 初始化GLFW,創建窗口,初始化GLAD,創建視口 2-數據處理: 給定頂點數據,生成並綁定VAO&VBO(準備再GPU中進行處理),設置頂點屬性指針(本質上就是告訴OpenGL如何處理數據)。 3

原创 【LeetCode】95. 不同的二叉搜索樹 II

思路 參考自詳細通俗的思路分析,多解法 利用查找二叉樹的性質。左子樹的所有值小於根節點,右子樹的所有值大於根節點。 所以如果求 1…n 的所有可能。 我們只需要把 1 作爲根節點,[ ] 空作爲左子樹,[ 2 … n ] 的所有可

原创 【LeetCode】303. 區域和檢索 - 數組不可變

解題思路 dp[i]:nums[0…i-1]的累計和(包括這兩個值) 初始值dp[0]=0; 狀態轉移 dp[i+1]=nums[i]+dp[i]; 計算sumrange如下: sumrange(i,j)=dp[j+1]-dp[i

原创 【LeetCode】337. 打家劫舍 III

思路參考自王小二的題解 以下面的這棵樹來說明   a  b  c  d  e f  g 對於這棵樹,我們用爺爺-兩個孩子-四個孫子來說明 問題的狀態: 爺爺節點獲取到最大的偷錢數是多少呢? 1、首先要明確相鄰的節點不能偷,也就是爺

原创 【LeetCode】213. 打家劫舍 II

解題思路 參考自 @jyd 環狀排列意味着第一個房子和最後一個房子只能選擇一個偷竊,因此可以把此環裝排列房間問題簡化成爲兩個單排排列房間子問題: 1.在不偷竊第一個房子的情況下(即nums[1:]),最大金額是p1; 2.在不偷竊