/** * @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; } }
LeetCode_849.到最近人的最大距离_java
最新推荐文章于 2023-08-22 08:43:45 发布