美文网首页我爱编程
Java日记2018-05-28

Java日记2018-05-28

作者: hayes0420 | 来源:发表于2018-05-28 06:38 被阅读0次
    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是固定最大的行 列。

    晚上补充吧,还是很绕的

    相关文章

      网友评论

        本文标题:Java日记2018-05-28

        本文链接:https://www.haomeiwen.com/subject/ahkwjftx.html