Java與演算法(2)

2021-08-02 07:28:20 字數 1373 閱讀 9874

題目:

乙個棧依次壓入1,2,3,4,5,那麼從棧頂到棧底分別為5,4,3,2,1,將這個棧轉置後,從棧頂到棧底為1,2,3,4,5,也就是實現棧中元素的逆序,但是只能使用遞迴函式來實現,不能使用其它資料結構

public

class

reversebystack

public

intgetandremovelastelemt

() else

} public

void

reverse

()

int i = getandremovelastelemt();

reverse();

stack.push(i); }

public

static

void

main

(string args)

}}

題目:

乙個棧中元素的型別為整型,現在想將該棧從頂到底按從小到大的順序排序,只許申請乙個棧,除此之外,可以申請新的變數,但不能申請額外的資料結構

public

class

sortstackbystack

public

void

sort

() help.push(cur);

} while (!help.isempty()) }

public

static

void

main

(string args)

}}

題目:

有乙個整型陣列arr和乙個大小為w的視窗從陣列的最左邊滑到最右邊,視窗每次向右邊滑乙個位置

如果陣列長度為n,視窗大小為w,則一共產生n-w+1個視窗,

實現乙個函式:

輸入:整型陣列arr,視窗大小w

輸出:乙個長度為n-w+1的陣列res,res[i]表示每一種視窗狀態下的最大值

public

class

getthewidow

linkedlist.addlast(i);

if (linkedlist.peekfirst()==i-w)

if (i>=w-1)

} return res; }

public

static

void

main

(string args)

; int w = 3;

getthewidow getthewidow = new getthewidow();

int data = getthewidow.window(a, w);

for(int i=0;i}}

Java 排序演算法2

相關部落格 排序演算法1 插入排序演算法描述 記錄存放在陣列r 0 n 1 中,排序過程的某一中間時刻,r被劃分成兩個子區間r 0 i 1 和r i n 1 其中 前乙個子區間是已排好序的有序區 後乙個子區間則是當前未排序的部分。基本操作 將當前無序區的第1個記錄r i 插入到有序區r 0 i 1 ...

java中常見演算法2

二分查詢原理 param arr 乙個陣列 param a 要查詢的整數 return 返回查詢到的陣列下標,沒找到則返回 1 public int find int arr,int a else if a middle else return 1 利用遞迴實現二分查詢 param arr 乙個陣列...

Java與演算法(12)

1.二叉樹節點間最大距離問題 給定頭節點,求最大距離public class maxdistance public static intmaxdistance node head public static intposorder node head,int record int lmax poso...