1. 程式人生 > >LeetCode_849.到最近人的最大距離_java

LeetCode_849.到最近人的最大距離_java

/**
 * @author chengxy
 * @date 2018/6/29 14:19
 * 到最近人的最大距離 https://leetcode-cn.com/problems/maximize-distance-to-closest-person/description/
 */
public class DemoTest0629_2 {
    public static void main(String[] args) {
        int[] seats = {0,0,0,1,0,0,0,0,0};
        int maxDistance = maxDistToClosest(seats);
        System.out
.println(maxDistance); } public static int maxDistToClosest(int[] seats) { int sum = 0; int temp = 0; for(int i = 0; i<seats.length; i++){ if(seats[i]==0){ temp ++; } if(seats[i]==1){ if(temp > sum){ sum = temp; } temp=0
; } } int prefix = 0; for (int i = 0;i<seats.length;i++ ) { if (seats[0] == 0 && seats[i] == 0) { prefix++; } else { break; } } int suffix =0; for (int i =seats.length-1;i>0
;i--) { if (seats[seats.length - 1] == 0 && seats[i] == 0) { suffix++; }else { break; } } int distance = suffix > prefix ? suffix : prefix; int normal = 0; if(sum>2&&sum%2==1){ normal = sum / 2 + 1; }else if(sum>2 && sum%2==0){ normal =sum/2; }else { normal = 1; } return distance > normal ? distance : normal; } }