原创 3、數組中重複的數字

數組中重複的數字 一:題目描述: 在一個長度爲 n 的數組裏的所有數字都在 0 到 n-1 的範圍內。數組中某些數字是重複的,但不知道有幾個數字是重複的,也不知道每個數字重複幾次。請找出數組中任意一個重複的數字。 Input: {

原创 數據結構——棧(中綴表達式轉後綴表達式)

波蘭計算器——後綴表達式 對於一個表達式,在我們生活中是這樣表示的: 1+((2+3)x4)-5 。也就是我們所說的中綴表達是 ,但是這對於計算機而言,這樣計算是很複雜的,具體思路以及代碼見上一篇博客: 棧實現計算器(中綴表達式)

原创 10.2.矩形覆蓋+跳臺階

一:矩形覆蓋 一:題目描述: 我們可以用 2*1 的小矩形橫着或者豎着去覆蓋更大的矩形。請問用 n 個 2*1 的小矩形無重疊地覆蓋一個 2*n 的大矩形,總共有多少種方法? 二:解題思路: 通過題目我們可以發現當n變化是會有以下

原创 數據結構——排序(插入+希爾)

一:插入排序 基本介紹: 插入排序:對想要排序的序列以插入的方式尋找該元素適當的位置,以達到排序的目的。 基本思想: 把n個待排序的元素看成一個有序表和一個無序表,開始時有序表中只有一個元素,無序表中包含n-1個元素。那麼排序的過

原创 數據結構——基數排序(經典以空間換時間案例)

基數排序(經典以空間換取時間案例) 一:基數排序介紹: 基數排序(radix sort)屬於“分配式排序”(distribution sort),又稱爲“桶子法”(bucket sort)或 bin sort,顧名思義,它是通過

原创 十種常用的算法

分治算法 一:分治算法介紹 1):分治算法是一種很重的算法,在字面上解釋就是“分而治之”,就是將一個複雜的問題先分成兩個或者更多的相同或者是相似的子問題,再把子問題分成更小的子問題。。。。直到最後的子問題可以簡單直接求解,原問題的

原创 數據結構~棧入門

棧 一:棧的介紹 棧的英文名爲:stack 棧是一個先入後出的有序列表 棧是限制性表,表中的元素只能夠在線性表的一端進行插入,獲取元素,這一端爲允許變化的一端,成爲棧頂(Top),另一端則稱爲棧底。 根據棧的定義可以知道,最先放

原创 數據結構——棧實現計算器(中綴表達式)

棧實現綜合計算器(中綴表達式) 問題提出: 使用棧實現綜合計算器,能夠實現輸入有一個表達式,計算出來表達式最終結果,支持四則運算 實現思路(圖解): 實現要求: 先實現一位數的運算 實現多位數的運算:要判斷index下面是否

原创 數據結構——遞歸(回溯算法實現八皇后問題)

遞歸——回溯算法 八皇后問題介紹 八皇后問題,是一個古老而著名的問題,是回溯算法的經典案例。該問題是國際西洋棋棋手馬克斯·貝瑟爾於1848年提出:在8x8國際象棋棋盤上拜訪8個皇后,使其不能夠相互攻擊,即:任意兩個皇后都不能夠處於

原创 數據結構——棧(逆波蘭計算器)

棧——逆波蘭計算器實現(後綴表達式) 實現步驟 將中綴表達式轉換成後綴表達式 逆波蘭表達式的計算方法 一:將中綴表達式轉換成後綴表達式 思路和代碼將下面一篇博客 中綴表達式轉換成後綴表達式 二:計算方法 創建一個存放結果的棧

原创 數據結構——歸併排序

歸併排序 一:歸併排序基本介紹 歸併排序是利用歸併的思想實現的排序方法,該算法採用經典的分治策略(分治法是指將問題先進行劃分,劃分成一些小問題,然後在家進行遞歸求解,而治的階段則是將分的階段得到的各答案“修補”在一起,即分而治之)

原创 數據結構——遞歸實現迷宮

迷宮問題——遞歸 問題描述: 一個8行7列的迷宮四周是圍牆,從左上角的位置到達右下角,尋找一條軌跡 代碼: package cn.littleworm; //遞歸實現迷宮算法 public class Maze {

原创 數據結構——插值查找

插值查找算法 一:插值查找介紹: 插值查找算法類似於二分查找法,但是不同的是二分查找法每次是從數組中間開始查找,但是插值查找每次從自適應mid處開始查找。 二分查找法獲取mid是(left+right)/2,left表示數組最左

原创 4、二維數組中的查找

二維數組中的查找 一:題目描述 給定一個二維數組,其每一行從左到右遞增排序,從上到下也是遞增排序。給定一個數,判斷這個數是否在該二維數組中 Consider the following matrix: [ [1, 4,

原创 5、 替換空格

替換空格 一:題目描述 將一個字符串中的空格替換成 “%20”。 Input: "A B" Output: "A%20B" 二:解題思路 ① 在字符串尾部填充任意字符,使得字符串的長度等於替換之後的長度。因爲一個空格要替換成三