原创 請修改append 函數,利用這個函數實現:兩個非降序鏈表的並集,1->2->3 和2->3->5 併爲1->2->3->5 另外只能輸出結果,不能修改兩個鏈表的數據。

不知道啥意思,用JAVA中Linkedlist實現鏈表,代碼如下: import java.util.LinkedList; public class append { /** * @param PLA * 請修改appen

原创 大量的URL 字符串,如何從中去除重複的,優化時間空間複雜度

1、內存夠用,將URL存入hash鏈表,每個URL讀入到hash鏈表中,遇到重複的就捨棄,否則加入到鏈表裏面,最後遍歷得到所有不重複的URL。 2、如果受內存限制,構造一個hash函數,把url適當散列到若干個比如1000個小文件中,然後

原创 JAVA實現簡單的堆棧結構

package Stack; public class Stack<E> {// 不知道棧中要存入什麼類型,用泛型 /** * @param PLA * JAVA實現簡單堆棧 */ private Object[]

原创 和爲n連續正數序列

題目:輸入一個正數n,輸出所有和爲n連續正數序列。    例如輸入15,由於1+2+3+4+5=4+5+6=7+8=15,所以輸出3 個連續序列1-5、4-6 和7-8。 思路:既然是連續正整數,則可以將

原创 Java Garbage Collection基礎詳解------Java 垃圾回收機制技術詳解

  最近還是在找工作,在面試某移動互聯網公司之前認爲自己對Java的GC機制已經相當瞭解,其他面試官問的時候也不存在問題,直到那天該公司一個做搜索的面試官問了我GC的問題,具體就是:老年代使用的是哪中垃圾回收算法,並詳細解釋第一步做什麼

原创 JVM原理和優化

JVM工作原理和特點主要是指操作系統裝入JVM是通過jdk中Java.exe來完成,通過下面4步來完成JVM環境. 1.創建JVM裝載環境和配置 2.裝載JVM.dll 3.初始化JVM.dll並掛界到JNIENV(JNI調用接口)實例

原创 JAVA堆內存

原文鏈接 Java 中的堆是 JVM 所管理的最大的一塊內存空間,主要用於存放各種類的實例對象。在 Java 中,堆被劃分成兩個不同的區域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被劃分爲三個區域

原创 調整數組順序使奇數位於偶數前面。

題目:輸入一個整數數組,調整數組中數字的順序,使得所有奇數位於數組的前半部分,所有偶數位於數組的後半部分。要求時間複雜度爲O(n)。  代碼如下: public class partition { /

原创 求一個數組的最長遞減子序列比如{9,4,3,2,5,4,3,2}的最長遞減子序列爲{9,5, 4,3,2}

代碼如下:<pre name="code" class="java"> public class Decrease { /** * @param PLA * */ /*算法描述: * 用動態規劃解決此問題,設A爲

原创 一個數組是由一個遞減數列左移若干位形成的,比如{4,3,2,1,6,5} 是由{6,5,4,3,2,1}左移兩位形成的,在這種數組中查找某一個數

public class findNum { /** * @param PLA * 題目:一個數組是由一個遞減數列左移若干位形成的,比如{4,3,2,1,6,5} 是由{6,5,4,3,2,1}左移兩位形成的,在這種數組

原创 一個整數數組,長度爲n,將其分爲m份,使各份的和相等,求m 的最大值比如{3,2,4,3,6} 可以分成{3,2,4,3,6} m=1; {3,6}{2,4,3} m=2 {3,3}{2

問題描述:一個整數數組,長度爲n,將其分爲m份,使各份的和相等,求m 的最大值比如{3,2,4,3,6} 可以分成{3,2,4,3,6} m=1;{3,6}{2,4,3} m=2{3,3}{2,4}{6}