我有下面的代碼來返回數組中的迴文 - 代碼工作正常,但我實際上將arraylist轉換爲一個數組 - 因爲大小是未知的 - 這是一個代價高昂轉換在這裏?時間複雜度是多少?新到Java編碼 - 寫在我自己的代碼,但我堅持找出時間複雜度爲數組轉換..返回一個Palindromes數組 - 轉換數組到列表
public class palindrome{
public static void main(String[] args){
String[] arr = {"saw","madam","level","taco","tomot"};
String[] res = palind(arr);
System.out.println(java.util.Arrays.toString(res));
}
public static String[] palind(String[] arr){
int count = 0;
java.util.ArrayList<String> list = new java.util.ArrayList<String>();
for(String s : arr){
if(isPalindrome(s) == true){
count++;
list.add(s);
}
}
String[] a = list.toArray(new String[count]);
return a;
}
public static boolean isPalindrome(String s){
return s.equals(new StringBuilder(s).reverse().toString());
}
}
成本是「試試看」,真的。沒有必要在這裏進行數組轉換,只需使用'ArrayList'來處理所有數據。在頂部使用'import java.util.ArrayList;',所以不要在整個地方使用完全符合命名空間限定的對象語法。把事情簡單化。 –