我爱编程

Java日记2018-05-28

2018-05-28  本文已影响0人  hayes0420
  1. 旋转数组的最小数字
    卡壳的地方在于移动边界的时候要考虑mid自己是否可以过滤掉,即向左或右移动1位
public class Solution0528 {
    public static int minNumberInRotateArray(int[] arr) {
        if(arr==null) return -1;
        int left = 0;
        int right = arr.length-1;
        int mid = 0;
        while(left<right) {
            mid = (left+right)/2;
            if(arr[left] < arr[mid]) {
                left = mid+1;
            } else {
                right = mid;
            }
        }
        System.out.println(arr[left]);
        return arr[left];
    }
    
    public static void main(String[] args) {
        int[] arr = {3, 4, 5, 1, 2};
        minNumberInRotateArray(arr);
    }

}
  1. 矩阵中的路径
    思路
    hasPath从坐标0,0开始遍历,通过hasPathCore递归的方法查找。hasPathCore是具体递归查找的实现。visited代表该字符是否访问过。下标的计算方式通过index = i*cols+j获取。如果matrix[index]!=str[k],那么显然不是一个合法的路径,visited[index]==0代表访问过,也不是一个合法的路径。j>=cols i>=rows当然也不行,rows col是固定最大的行 列。

晚上补充吧,还是很绕的

上一篇下一篇

猜你喜欢

热点阅读