反序輸出正整數和求陣列交集的問題

2021-07-09 06:57:58 字數 885 閱讀 5805

今天看了一片關於阿里面試的文章,對於其中的幾個問題還是蠻感興趣的,所以暫時將問題的答案記錄一下,如果有高手看到我的文章,有更好的解決方案,也希望能提點一下。

問題1: 有兩個int陣列,求兩個陣列的交集。

問題2: 寫乙個函式,輸入乙個正整數,要求輸出乙個反序的字串,用遞迴,不能有全域性變數

關於問題1的解決方案:

思路1: 排序,遍歷其中乙個陣列,然後利用二分法查詢每個值是否存在於第二個陣列中;

思路 2 :利用hashset 或者hashmap的key。這樣遍歷的次數更少。

關於問題2的解決方案:

思路:僅僅是讀順序,所以就有從頭讀和從尾部讀的思路。從尾部讀更簡單寫。

public class test ;

int arr2 = new int;

long start = system.currenttimemillis();

arrays.sort(arr1);

arrays.sort(arr2);

for(int i = 0 ; i< arr1.length ;i ++)

}system.out.println((system.currenttimemillis() -start));

}private static int binarysearch(int arr2, int i)

public static string fun(int num)else

}public static int binarysearch0(int a, int fromindex, int toindex,

int key)

return -(low + 1); // key not found.

}}

求陣列中未出現的最小正整數

題目 給定乙個無序整型陣列arr,找到陣列中未出現的最小正整數。要求時間複雜度為o n 空間複雜度為o 1 例如 arr 1,2,3,4 返回1。arr 1,2,3,4 返回5。解法 一 窮舉查詢 最小正整數是1,所以常規的方法就是在陣列中找1,然後是2,依次找下去 一直找到第乙個沒有出現的正整數,...

(遞迴版)輸入乙個正整數n,輸出其反序數

程式 include csdn學院 2016級 目的 讓 見證成長 作為乙個初學的菜鳥,如 檔名稱 myfun202.c 問題描述 輸入乙個正整數n,輸出其反序數 完成日期 2017年11月19日 int main printf n return 0 遞迴版 include csdn學院 2016級...

輸入乙個正數n,輸出所有和為n連續正整數序列

public class lzwcode 題目 輸入乙個正數n,輸出所有和為n連續正整數序列。例如輸入15,由於1 2 3 4 5 4 5 6 7 8 15,所以輸出3個連續序列1 5 4 6和7 8。思路 因為整數序列是有序的,可以設立兩個游標begin和end,通過判區間 begin,end 的...