[一亩三分地] Spirally Shift 2D array 二维数组顺时针右移一位
这题看着挺简单, 各种corn case唉. 如果不是仔细写, 会被面试官直接按到死. 先举几个栗子: 输入: 1 2 3 4 5 6 7 8 9 输出: 4 1 2 7 5 3 8 9 6 输入: 1 2 3 4 5 6 7 8 9 10 输出: 6 1 2 3 4 7 8 9 10 5 输入: 1 2 3 4 5 6 […]
这题看着挺简单, 各种corn case唉. 如果不是仔细写, 会被面试官直接按到死. 先举几个栗子: 输入: 1 2 3 4 5 6 7 8 9 输出: 4 1 2 7 5 3 8 9 6 输入: 1 2 3 4 5 6 7 8 9 10 输出: 6 1 2 3 4 7 8 9 10 5 输入: 1 2 3 4 5 6 […]
Google电面: 这个算电面的简单题了. 没帕金森的基本都能写… 其实就是Prime Factorization, 只是code略有不同. 然后这个不是O(n) 算法, 是伪多项式的算法, 因为input和n本身的大小有关系. public static List<Integer> getAllDivisors(int n) { List<Integer> divisors = new ArrayList<Integer>(); for (int denominator = 1; denominator <=Math.sqrt(n); denominator++) if (n % denominator == 0) { divisors.add(denominator); if (denominator * denominator != n) divisors.add(n / denominator); } Collections.sort(divisors); return divisors; } 与Prime Factorization的区别就是中间第二个if, 多加了个除数, 仅此而已