原创 每日一題——布隆過濾器

布隆過濾器:它實際上是一個很長的二進制向量和一系列隨機映射函數。用於檢索一個元素是否在一個集合中。它的優點是空間效率和時間效率都遠遠超過一般算法。缺點是有一定的誤識率,和刪除困難。 原理:當一個元素加入集合時,通過K個Hash函

原创 每日一題——atoi,itoa函數的實現

atoi是將字符串轉換爲長整形數的一種函數,itoa相反 atoi實現需注意一下點: 1,空格; 2,表示數值的正負號; 3,結束條件:非數字或‘\0’; 4,考慮溢出問題; 5,考慮異常輸入問題(+abc …),用

原创 遊戲上線問題總結

1,Log問題(喫過虧纔會重視) 遊戲上線後,隨着玩家數據量的劇增,許多bug就會隨之出現,但同時有些bug是很難復現的,這時候定位問題就不可能通過打斷點來進行查找,這時候完整的log信息纔是定位問題的關鍵。 log等級: Tra

原创 每日一題——memcpy,strcpy,memmove的實現

memcpy與strcpy的區別: 1,用途不同:strcpy主要用來字符串拷貝,memcpy主要是其他類型的拷貝; 2,使用方式不同:strcpy是遇到‘\0’停止,memcpy是根據第三個參數來決定拷貝內容; memmov

原创 地圖的可拖動功能以及點擊尋路座標問題

需求:由於地圖中展示的元素增加,導致地圖圖片被放大,在地圖界面不能完全顯示,所以添加可拖動功能。 解決方案很簡單:prefab調整, 邏輯編寫(打開地圖,玩家的圖標儘可能靠中心位置) 一,在prefab上進行的調整 注:上圖中m

原创 Unity 之 Canvas

Canvas.ForceUpdateCanvases 強制更新畫布 描述 強制更新所有畫布的內容。 在最後一幀畫布執行佈局和內容生產的計算,僅在渲染之前,爲了確保在該幀期間發生的最新的改變在畫布上。這意味着在返回調用開始和首次更新

原创 CSP併發模型

不要以共享內存的方式來通信,相反,要通過通信來共享內存 Go語言的併發模型參考的是CSP理論(Go推薦的,通信順序進程,一種併發編程模型),另一種就是多線程共享內存,在訪問共享數據時,通過鎖來訪問,因此衍生出了許多方便的數據結構,

原创 每日一題——求二叉樹葉子節點個數,第K層節點個數

1,求葉子節點個數 int leafnum(Node* root) { if(root == NULL) return 0; if(root->left == NULL && root->right

原创 每日一題——求二叉樹的高度,銷燬二叉樹

1,求二叉樹的最大高度: int length(Node* root) { if(root == NULL) return 0; int leftLength = length(root->lef

原创 每日一題——子樹

有兩個不同大小的二進制樹: T1 有上百萬的節點; T2 有好幾百的節點。請設計一種算法,判定 T2 是否爲 T1的子樹。 注意事項 若 T1 中存在從節點 n 開始的子樹與 T2 相同,我們稱 T2 是 T1 的子樹。也就是說,

原创 每日一題——排序(從1-n連續的數進行排序)

有一堆從1到n連續的n個數,要求進行排序,時間複雜度是O(N) 思路:從第一個數開始,使得a[i]與a[a[i] - 1]進行交換,直至 i == a[i]-1,即該值已回到了自己的所在位置(0對應1,1對應2,…),然後i++;

原创 每日一題——位圖

定義:位圖(bitmap)就是利用每一位來存儲某種狀態,但是狀態又比較少的情況。 缺點: 1,只能用於整形; 2,可讀性差; 3,位圖存儲的元素個數雖然比一般做法多,但是存儲的元素大小受限於存儲空間的大小。位圖存儲性質:存

原创 每日一題——字符串循環右移K位,時間複雜度O(N)

例:abcdefgh,循環右移K=3位,就成:fghabcde 思路:從上面的例子可以看出,結果就是將後面的K位與前面的N-K位調換位置即可。將字符串逆置,就使得前後位置發生了變化,但是前後兩部分的字符順序出現了逆置,所以在逆置整

原创 批量GM指令處理

1,在遊戲目錄中新創建一個txt文件 2,編輯文件內容,如下(根據自己需求): #unlock #setquest 13606 #setlevel 29 #additems 1001 1 3,解析文件內容發送服務端,邏輯如下(L

原创 Go問題

1,詳解slice https://www.jianshu.com/p/030aba2bff41 2,詳解Map https://mp.weixin.qq.com/s/Jq65sSHTX-ucSG8TlI5Zxg //錯誤代碼 t