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