Java火和費羅切是兩個重要的算法問題,下面我們來簡單介紹一下。
Java火問題:給定一個字符串數組,只有兩個字符串不同,找出那兩個字符串并返回它們在數組中的索引。
public int[] findDifference(String[] strs) { int[] res = new int[2]; int n = strs.length; HashSetset = new HashSet<>(); for (int i = 0; i< n; i++) { if (!set.add(strs[i])) { res[0] = i; } } for (int i = 0; i< n; i++) { for (int j = 0; j< strs[i].length(); j++) { char c = strs[i].charAt(j); StringBuilder sb = new StringBuilder(strs[i]); sb.setCharAt(j, c == 'a' ? 'b' : 'a'); String s = sb.toString(); if (set.contains(s)) { res[1] = i; return res; } } } return res; }
費羅切問題:給定一個正整數n,返回第n個斐波那契數列的值。
public int fibonacci(int n) { if (n == 0) { return 0; } if (n == 1) { return 1; } int f0 = 0, f1 = 1; for (int i = 2; i<= n; i++) { int tmp = f0 + f1; f0 = f1; f1 = tmp; } return f1; }
Java火和費羅切問題都是算法面試中經典的問題,需要我們掌握其思想并熟練掌握代碼實現。