原创 數組能否累加至某個數

問題描述 給定一個數組arr和一個整數aim。如果可以任意選擇arr中的數字,能否累加至aim,能則返回true,否則返回false。 解決方案(動態規劃) 遍歷數組,每到一個元素將原有的和加上該元素添加回HashMap,

原创 對稱二叉樹(java實現)

問題描述 請實現一個函數,用來判斷一顆二叉樹是不是對稱的。注意,如果一個二叉樹同此二叉樹的鏡像是同樣的,定義其爲對稱的。 解決方案 採用層次遍歷,注意空節點也要加入隊列,代碼如下: /* public class Tree

原创 Git倉庫超過100M大文件自動檢測並修改.gitattributes文件程序(java實現)

最近做項目用git向github推送時,總是出現大於100M的文件導致push失敗,每次都要手動找到大於100M的文件,然後修改.gitattributes,用git-fls 上傳,很麻煩,所以就用Java寫了一個自動檢測Git倉

原创 爲什麼要有紅黑樹?什麼是紅黑樹?畫了20張圖,看完這篇你就明白了

爲什麼要有紅黑樹 想必大家對二叉樹搜索樹都不陌生,首先看一下二叉搜索樹的定義: 二叉搜索樹(Binary Search Tree),或者是一棵空樹,或者是具有下列性質的二叉樹: 若它的左子樹不空,則左子樹上所有結點的值均小於它的根

原创 刪除鏈表中重複的節點(Java實現)

問題描述 在一個排序的鏈表中,存在重複的結點,請刪除該鏈表中重複的結點,重複的結點不保留,返回鏈表頭指針。 例如,鏈表1->2->3->3->4->4->5 處理後爲 1->2->5 解決方案 注意邊界即可,代碼如下: /

原创 用兩個棧實現隊列(Java實現)

題目描述 用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素爲int類型。 解決方案 代碼如下: import java.util.Stack; public class Solution {

原创 包含min函數的棧(用輔助棧和不用輔助棧兩種寫法 java實現)

問題描述 定義棧的數據結構,請在該類型中實現一個能夠得到棧中所含最小元素的min函數(時間複雜度應爲O(1))。 解決方案1 利用一個輔助棧來存儲最小值,入棧和出棧時同時維護輔助棧,代碼如下: import java.ut

原创 Java中Vector與ArrayList的區別

ArrayList與Vector的區別主要包括兩個方面:. 線程安全性 Vector是線程安全的,也就是說是它的方法之間是線程同步的,而ArrayList是線程序不安全的,它 的方法之間是線程不同步的。所以如果是多線程訪問的話,最

原创 正則表達式匹配(java實現)

問題描述 請實現一個函數用來匹配包括’.‘和’ * ‘的正則表達式。模式中的字符’.'表示任意一個字符,而 ’ * '表示它前面的字符可以出現任意次(包含0次)。 在本題中,匹配是指字符串的所有字符匹配整個模式。例如,字符串"

原创 棧的壓入、彈出序列(java實現)

問題描述 輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否可能爲該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的一個彈出序列,

原创 JS中的clear()方法爲什麼不起作用?

問題描述 最近在做項目時,在HTML中編寫了一個超鏈接,超鏈接調用Js中的clear()方法,但是無論怎麼嘗試發現clear()方法都不起作用,這是怎麼回事呢?HTML中的代碼如下: <a href="javascript:voi

原创 LeetCode655.Print Binary Tree(java實現)

問題描述 Print a binary tree in an m*n 2D string array following these rules: The row number m should be equal to the

原创 矩形覆蓋

問題描述 我們可以用2 * 1的小矩形橫着或者豎着去覆蓋更大的矩形。請問用n個2 * 1的小矩形無重疊地覆蓋一個2 * n的大矩形,總共有多少種方法? 解決方案 用動態規劃來解,f(n) = f(n - 1) + f(n

原创 按之字形順序打印二叉樹(Java實現)

問題描述 請實現一個函數按照之字形打印二叉樹,即第一行按照從左到右的順序打印,第二層按照從右至左的順序打印,第三行按照從左到右的順序打印,其他行以此類推。 解決方案 代碼如下: import java.util.Array

原创 《一文說透數據結構》系列之什麼是堆?看這一篇就夠了

本文將首先介紹什麼是堆,然後介紹了堆的插入和刪除操作,最後給出了堆的代碼實現,並進行了測試。 什麼是堆 堆是一顆完全二叉樹,堆中某個節點的值總是不大於或不小於其父節點的值。根節點最大的堆叫做大根堆,根節點最小的堆叫做小根堆。 首先