原创 List、Set、Map相關Q&A

一. List 1. 源碼定義: public interface List<E> extends Collection<E> {} 2. 常用實現類: ArrayList,LinkedList,Vector 二、Set 1.源碼

原创 String、StringBuffer、StringBuilder的相關Q&A

Q1:是否可變? A1:結論:String不可變,StringBuffer和StringBuilder可變。理由如下: 看jdk的源碼,String類的源碼如下: public final class String imp

原创 回溯法解決n後問題

參考教材:算法設計與分析(第3版) 王曉東 編著 清華大學出版社 問題的解空間 用回溯法解問題時,明確定義問題的解空間。問題的解空間至少應包含問題的一個(最優)解。 定義了問題的解空間後,還應將解空間很好地組織起來,使得能用回溯

原创 貪心算法解決單源最短路徑問題

參考教材:算法設計與分析(第3版) 王曉東 編著 清華大學出版社 貪心算法總是做出在當前看來最好的選擇,也就是說貪心算法並不從整體最優考慮,它所做出的選擇只是在某種意義上的局部最優選擇。 貪心算法的基本要素 1. 貪心選擇性質

原创 基於分治策略的排序算法:合併排序和快速排序

參考教材:算法設計與分析(第3版) 王曉東 編著 清華大學出版社 首先介紹什麼是分治法? 分治法的基本思想是將一個規模爲n的問題分解成k個規模較小的子問題,這些子問題互相獨立且與原問題相同。遞歸地解決這些子問題,然後將各子問題

原创 堆排序

簡單認識 堆排序(Heapsort)是指利用堆積樹(堆)這種數據結構所設計的一種排序算法,它是選擇排序的一種。可以利用數組的特點快速定位指定索引的元素。堆分爲大根堆和小根堆,是完全二叉樹。 完全二叉樹:除最後一層外,每一層上的

原创 二叉樹的先序、中序、後序遍歷

複習一波,go! 三種遍歷方式本質區別在於遍歷順序不同。 以L、D、R分別表示遍歷左子樹、訪問根節點、訪問右子樹,先序遍歷爲DLR;中序遍歷爲LDR;後序遍歷爲LRD。(別隻給三個字母就不認識誰是誰了,L就是left,……很好

原创 Servlet生命週期與工作原理

原文 Servlet生命週期分爲三個階段:   1,初始化階段,調用init()方法   2,響應客戶請求階段,調用service()方法   3,終止階段,調用destroy()方法 Servlet初始化階段:   在下列時刻S

原创 java開發環境搭建

開發環境搭建主要分三步: 1.安裝jdk 筆者使用的jdk是64位: 鏈接:http://pan.baidu.com/s/1c0nVsmk 密碼:8sz9 雙擊運行,安裝很簡單。 2.設置環境變量 爲了配置JDK的系統變量環境

原创 HTTP常見狀態碼

更多詳細內容,請看 HTTP協議詳解(真的很經典) HTTP響應是由三個部分組成,分別是:狀態行、消息報頭、響應正文 狀態行格式如下: HTTP-Version Status-Code Reason-Phrase CRLF 其

原创 sublime text 3 編譯運行java代碼方法

首先要安搭建好java開發環境 java開發環境搭建 一、在sublime text 主界面點擊 tools->Build System->New Build System,刪除自動生成的內容,將下面代碼複製到untitled

原创 Comparable與Comparator的區別

原文 Comparable & Comparator 都是用來實現集合中元素的比較、排序的,只是 Comparable 是在集合內部定義的方法實現的排序,Comparator 是在集合外部實現的排序,所以,如想實現排序,就需要在集

原创 華爲oj初級題目——合唱隊

原題: 原題說了知識點是循環,雖然也正確,但成功誤導了大批像我一樣的菜鳥們。此外圖片中描述中的滿足條件應該是T1<T2<......<Ti-1<Ti>Ti+1>......>TK。 此題正確的解題思想是動態規劃。 先說說我的

原创 任意2n個整數,從其中選出n個整數,使得選出的n個整數和同剩下的n個整數之和的差最小

解題參考原文如下(請帶着批判的眼光去看,有些細節我認爲是不對的,但是我沒有改動): <編程之美>數組分割問題 題目概述:有一個沒有排序,元素個數爲2N的正整數數組。要求把它分割爲元素個數爲N的兩個數組,並使兩個子數組的和最接近。

原创 三個最簡單的排序算法:插入、冒泡、選擇

回顧幾個簡單、也是時間複雜度比較高的排序算法。主要是寫給自己回顧,所以不會有特別多的解釋。都是最基礎的排序,難度也不大。 1. 插入排序: 基本思想:在遍歷數組的過程中,假設在序號 i 之前的元素即 [0..i-1] 都已經排好序