原创 數據結構與算法:單調棧的使用

單調棧的初次使用 輸入: nums1 = [4,1,2], nums2 = [1,3,4,2]. 輸出: [-1,3,-1] 解釋: 對於num1中的數字4,你無法在第二個數組中找到下一個更大的數字,因此輸出 -1

原创 PTA:03-樹1 樹的同構

給定兩棵樹T1和T2。如果T1可以通過若干次左右孩子互換就變成T2,則我們稱兩棵樹是“同構”的。 輸入格式: 輸入給出2棵二叉樹樹的信息。對於每棵樹,首先在一行中給出一個非負整數N (≤10),即該樹的結點數(此時假設結點從0到N

原创 C++win32實現俄羅斯方塊(類實現)

C++win32實現俄羅斯方塊 頭文件 源文件: 背景類的源碼 .h文件 #pragma once class bg { public: bg(void); int getmark(); int addmark(int

原创 C/C++數據結構:線性表的順序存儲

線性表的順序存儲結構 特點: 1、物理地址相鄰 2、隨機存取:可以計算出每個數據元素的存儲地址(數組) 在數據結構(嚴蔚敏C語言)中,順序表實現的代碼如下: 時間複雜度的分析: 順序表時間主要花費在移動元素中,移動元素的個數取決於

原创 PTA:03-樹2 List Leaves

Given a tree, you are supposed to list all the leaves in the order of top down, and left to right. Input Specificat

原创 PTA:04-樹4 是否同一棵二叉搜索樹

給定一個插入序列就可以唯一確定一棵二叉搜索樹。然而,一棵給定的二叉搜索樹卻可以由多種不同的插入序列得到。例如分別按照序列{2, 1, 3}和{2, 3, 1}插入初始爲空的二叉搜索樹,都得到一樣的結果。於是對於輸入的各種插入序列,

原创 PTA 01-複雜度1 最大子列和問題(C/C++)

給定K個整數組成的序列{ N​1​​, N​2​​, …, N​K​​ },“連續子列”被定義爲{ N​i​​, N​i+1​​, …, N​j​​ },其中 1≤i≤j≤K。“最大子列和”則被定義爲所有連續子列元素的和中最大者。

原创 PTA:02-線性結構4 Pop Sequence

堆的應用 題目源於陳越、何欽銘-數據結構 Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, …, N a

原创 數據結構與算法:前綴和的問題

例題: 給你一個鏈表的頭節點 head,請你編寫代碼,反覆刪去鏈表中由 總和 值爲 0 的連續節點組成的序列,直到不存在這樣的序列爲止。 刪除完畢後,請你返回最終結果鏈表的頭節點。 數據案例 輸入:head = [1,2,-3,3

原创 數據結構與算法:關於鏈表的排序Sort List

鏈表的歸併排序 對一個鏈表排序,要求時間複雜度O(NlogN),空間複雜度爲常量級。對於時間複雜度的選擇,比較容易想到用歸併排序或者快速排序,但是歸併排序的空間複雜度在O(N)。 對於數組的歸併排序確實需要開闢另一個數組作臨時存儲

原创 JAVA筆記:正則表達式

簡介 正則表達式一般適用於複雜文本的處理,是強大又靈活的文本處理工具,幾乎所有的編程語言都支持正則表達式。主要是通過一個規則匹配一類字符串 正則表達式規則 圖源於百度,侵權刪。 一直保存了這個圖片,個人覺得這個圖就夠大部分正則表達

原创 C/C++數據結構:時間複雜度

數據結構介紹、時間複雜度 起源: 計算機從解決數值計算問題到解決生活中的問題 現實生活中的問題涉及不同個體間的複雜聯繫 需要在計算機程序中描述生活中個體間的聯繫 數據結構主要研究非數值計算程序問題中的操作對象以及它們之間的

原创 一篇幫助理解KMP算法的文章(附C++/Java源碼)

先上需求 給定一個 str 字符串和一個 value 字符串,在 str 字符串中找出 value 字符串出現的第一個位置 (從0開始)。其實就是C語言的 strstr() 以及 Java的 indexOf() 實現原理。 輸入案

原创 Java小遊戲項目(一):飛機與子彈的實現

飛機大戰項目 剛學Java時用Frame寫的一個飛機子彈的小遊戲項目,難度不大,學了frame的小夥伴可以試試手 核心包: 背景和飛機 遊戲窗口的實現,包含整個窗體的監聽 package GamePlane; impor

原创 PAT:06-圖3 六度空間

06-圖3 六度空間 “六度空間”理論又稱作“六度分隔(Six Degrees of Separation)”理論。這個理論可以通俗地闡述爲:“你和任何一個陌生人之間所間隔的人不會超過六個,也就是說,最多通過五個人你就能夠認識任何