标签:diff map amp class nbsp [] 多个 new 整数
1 Find Peak Element
public int findPeak(int[] a) { // write your code here if (a == null || a.length <= 2) return -1; int start = 0; int end = a.length - 1; int mid; while (start < end) { mid = start + (end - start) / 2; if (a[mid] < a[mid + 1]){ start = mid + 1; } else { end = mid; } } return start; }
2 子数组之和0
一个整数矩阵有如下一些特性: 相邻的整数都是不同的 矩阵有 n 行 m 列。 对于所有的 i < m, 都有 A[0][i] < A[1][i] && A[n - 2][i] > A[n - 1][i]. 对于所有的 j < n, 都有 A[j][0] < A[j][1] && A[j][m - 2] > A[j][m - 1]. 我们定义一个位置 P 是一个峰,如果有 A[j][i] > A[j+1][i] && A[j][i] > A[j-1][i] && A[j][i] > A[j][i+1] && A[j][i] > A[j][i-1]。 找出该矩阵的一个峰值元素,返回他的坐标。 注意事项 可能会存在多个峰值,返回任意一个即可。 您在真实的面试中是否遇到过这个题? Yes 样例 给一个矩阵: [ [1 ,2 ,3 ,4 ,5], [16,41,23,22,6], [15,17,24,21,7], [14,18,19,20,8], [13,12,11,10,9] ] 返回 41 的坐标[1,1], 或者 24 的坐标[2,2
public ArrayList<Integer> subarraySum(int[] nums) { // write your code here ArrayList<Integer> res = new ArrayList<>(); HashMap<Integer, Integer> map = new HashMap<>(); map.put(0, -1); int sum = 0; for (int i = 0; i < nums.length; i++) { sum += nums[i]; if (map.containsKey(sum)) { res.add(map.get(sum) + 1); res.add(i); return res; } map.put(sum, i); } return res; }
3 Submatrix Sum
public int[][] submatrixSum(int[][] matrix) { int[][] result = new int[2][2]; int M = matrix.length; if (M == 0) return result; int N = matrix[0].length; if (N == 0) return result; // pre-compute: sum[i][j] = sum of submatrix [(0, 0), (i, j)] int[][] sum = new int[M+1][N+1]; for (int j=0; j<=N; ++j) sum[0][j] = 0; for (int i=1; i<=M; ++i) sum[i][0] = 0; for (int i=0; i<M; ++i) { for (int j=0; j<N; ++j) sum[i+1][j+1] = matrix[i][j] + sum[i+1][j] + sum[i][j+1] - sum[i][j]; } for (int l=0; l<M; ++l) { for (int h=l+1; h<=M; ++h) { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (int j=0; j<=N; ++j) { int diff = sum[h][j] - sum[l][j]; if (map.containsKey(diff)) { int k = map.get(diff); result[0][0] = l; result[0][1] = k; result[1][0] = h-1; result[1][1] = j-1; return result; } else { map.put(diff, j); } } } } return result; }
标签:diff map amp class nbsp [] 多个 new 整数
原文地址:http://www.cnblogs.com/whesuanfa/p/7466249.html